Техническое зрение в автомобильной индустрии 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Техническое зрение в автомобильной индустрии



Введение

Фундаментальной задачей для систем технического зрения является визуальная обработка данных, цель которых является дальнейшее принятие решений в области управления любыми автономными роботехническими комплексами.

При высокой динамике изменения условий окружающей среды имеет смысл внедрение данных автономных систем для выполнения ряда трудоемких работ, опасных для жизни человека, таких как разминирование, ремонт трубопроводов, мониторинг в агрессивных средах, автоматизация технологических процессов на производстве.

Внедрение робототехнических систем приводит к улучшению экономических показателей промышленного производства за счет скорости и качества автоматических операций, непрерывного мониторинга, повышающего эффективность и надежность системы управления, отсутствие переутомления, присущая человеку.

Семьдесят процентов информации человек усваивает через зрительную систему, из чего можно сделать вывод о её огромной значимости при взаимодействии с внешней средой. При рассмотрении иных методов анализа окружающей среды зрение наиболее универсально и имеет влияние на интеллект. Следовательно, у системы, претендующей на автономное поведение, обязательно должен быть орган технического зрения.

В работе будет рассмотрено очувствление роботизированного макета надводного судна (далее - Корабль), а также манипулятора Kawasaki. На первый взгляд данные задачи не имеют общих черт, но как ранее уже говорилась система технического зрения — это универсальный способ очувствления системы.

В настоящий момент, определение координат реального надводного судна в открытом водном пространстве производиться с помощью системы GPS/Глонасс. Но работа данного метода в составе робототехнического комплекса невозможно в силу ряда причин:

· Погрешность определения координат больше, чем размеры макета.

· В помещении данная погрешность возрастает ещё больше, либо система перестаёт функционировать.

· Отсутствие возможности определения ориентации в пространстве без применения сторонних систем.

Исходя из данных ограничений, можно сделать вывод, что система технического зрения идеально подходит для данной задачи. Ранее уже был реализован алгоритм определения координат корабля, но его показатели были низкие для плавной работы системы. Количество кадров в секунду составляло: 4, а разрешение изображения было: 320х240. Исходя из этого можно поставить следующие задачи: увеличение скорости обработки изображения, увеличение разрешения изображения, способность определять угол поворота корабля и его центр.

Для подтверждения универсальности системы технического зрения было предложено адаптировать данную систему и под задачи, связанные с манипулятором Kawasaki. Данный манипулятор будет производить захват одного из объектов, отличающийся по определённому признаку, при помощи механизированной руки. При захвате объекта необходимо знать: какой из объектов мы будем захватывать, его ориентацию в пространстве и то где относительно центра камеры находиться центр данного объекта. Эта информация поможет нам произвести захват при помощи манипулятора. Так же надо разработать алгоритм, который сможет работать на устройстве в режиме, приближенным к реальному времени.

Целью данной работы является разработка системы технического зрения, подходящей как робота манипулятора, так и для управление роботизированным макетом судна. Выходными данными системы технического зрения является вектор числовых параметров, передаваемый по интерфейсу Ethernet или Wi-Fi, содержащий следующие данные:

1. Координаты центра наблюдаемого объекта

2. Ориентация в пространстве наблюдаемого объекта

3. Расстояние от захвата до объекта для манипулятора Kawasaki

4. Количество отсылаемых пакетов должно составлять не менее 24 пакетов в секунду.


Аналитический обзор

Техническое зрение набирает обороты среди крупных производителей.Так как данный комплекс имеет очень большой охват применения к нему находят очень разное применение в разных отраслях.

Техническое зрение в промышленной индустрии

Аналогичная ситуация обстоит в промышленной индустрии. Для оптимизации производства необходимо уменьшение человеко-часов средством внедрения визуального контроля качества продукции.

Автоматизация технических процессов при помощи средств технического зрения часто используется при:

· считывание текстовых маркировок

· считывание 1D и 2D кодов

· Контроль наличия объектов

· Измерение геометрических размеров

· Подсчет объектов

· Идентификация объектов

· Контроль цвета

· Зрение промышленных роботов

· 3D инспекция

Большой спектр применения систем технического зрения говорит нам о том что данная система очень востребована в производственном секторе. Так же не маловажный фактором является, то что данную систему начали разрабатывать отечственные инженеры по внедрению АСУ-ТП.

Один из хороших примеров работы системы технического зрения является сегментация руды по ряду свойств: блеск, прожилки, цветность. Данный алгоритм был представлен сотрудником университета ИТМО, который показал низкую относительную погрешность равной 4.35%. При данной сегментации можно делить породу на 1, 2 и 3 класс полезности.


Разработка алгоритма обработки видео изображения в режиме реального времени

Для разработки алгоритма обработки видео изображения необходимо выяснить то, как работает камера. В нашем случае это камера на основе 5 мега пиксельной матрицы ov5647, сделанная на основе активно-пиксельного датчика.

Сегментация изображения в системе технического зрения

Основной задачей анализа и обработки изображения является сегментация. Другими словами это разбиение изображения на части, в которых выполняется некий критерий однородности. Одним из способов сегментации изображения является бинаризация изображения.

Передача данных удаленному приемнику

Передача информации удаленному источнику является одной из задач данного работы. Передавать информацию можно по проводному каналу связи и по беспроводному. Передачей информации можно описать как процесс физический переноса информации в форме сигнала от передатчика к приемнику по каналу передачи данных для дальнейшей работы при помощи вычислительных устройств. Беспроводной канал, медный провод, ВОЛС и запоминающие устройства являются примерами различных каналов связи.

Рисунок 28 – топология способов передачи данных.

 

Протокол передачи данных IP

Межсетевой протокол IP (Internet Protocol) – является протоколом, соединивший различные компьютерные сети в сеть Интернет. IP – адрес является основной частью данного протокола. Данные протокол не гарантирует доставки пакета до места назначения. Информация может прийти не в том порядке, что была отправлена. Так же она может быть повреждена и может быть продублирована или же не прийти. Для гарантии безошибочной доставки информации необходимо обратиться к протоколам более высокого уровня, например TCP или UDP. Существует четыре уровня протоколов:

· Прикладного уровня (Application layer), например: HTTP, DNS, FTP

· Транспортного уровня (Transport layer), например: UDP, TCP

· Сетевого уровня (Internet layer), например: IP

· Канального уровня (Link layer), например: IEEE 802.11, Ethernet

 

TCP (Transmission Control Protocol) является набором сетевых протоколов передачи информации, включая Интернет. Данный протокол работает над протоколом IP. Обмен данными осуществляется с использованием протокола 4 уровня. Так же производится проверка поступивших данных. Если информация доставлена в не полном размере или же искажена, производится повторная посылка данных. Для начала посылки сообщений необходимо, что бы было открыто соединение между клиентом и сервером. После соединения двух устройств, сервер отсылает синхронизирующий порядковый номер, который идентифицирует соединение, и подтверждение. После этого осуществляется общения между двумя устройствами. После каждого полученного сообщения в ответ всегда отправляется подтверждение о получении.

Таблица 7 – Заголовки TCP

Основным преимуществом данного протокола является его гарантия о доставки сообщений. Данная гарантия порой требует большую временную затрату.

Так же существует более быстрый протокол посылки данных UDP (User Datagram Protocol). В данном протоколе имеется только самый необходимый набор механизмом для передачи данных. Получая быстродействие, данный протокол имеет некоторые недостатки:

· Поступление сообщений может осуществляется в любом порядке. Таки образом первое отосланное сообщением может оказаться последним.

· Нет гарантии доставки

Плюсами являются:

· Быстрая посылка

· Не требует открытия соединения

· Моментальная посылка данных.

Существует два способа посылки сообщений в сеть: однонаправленное и широковещательная передача. Первая характеризуется посылкой из одного узла в другой. Второй же способ отправляет всем узлам сети или рассылка идет в выбранную группу узлов. Чаще всего при отсылки широковещательных или групповых сообщений потребность в подтверждении о получении отпадает. Хорошим примером является

· Просмотр онлайн трансляций

· Служба времени

Если при посылки данной информации было необходимо получать подтверждение о поставки информации, то нагрузка на сервер бы возросла в несколько раз.

Таблица 8 – Заголовки UDP

Для решение поставленной задачи был выбран протокол передачи данных UDP. Это связано с тем что данный протокол обладает быстрой передачей информации. Так как в нашей задаче планируется скорость посылки информации от 20 пакетов в секунду, то нам необходима быстрая посылка информации, без лишних подсоединений к серверу и получения подтверждения о доставки.


Использованные источники

1. http://webspecial.volkswagen.de/innovative-technologies/ новаторские технологии группы Volkswagen AG

2. http://www.irobot.ru/roomba980/ описание режима работы и возможностей робота-пылесоса Roomba 980

3. Магистерская диссертация на тему «Исследование и разработка многопараметрического классификатора минеральных объектов.»/ Шитов Д.Д., Коротаев В.В.

4. Принцип работы и устройство активно-пиксельных датчиков / Овчинников А.М., Ильин А.А., Овчинников М.Ю.

5. http://www.keldysh.ru/papers/2003/prep85/prep2003_85.html / Устройство активно-пиксельных датчиков

 

Приложение А

Технические характеристики Raspberry Pi 2 model B

Приложение Б

Листинг программы.

opencv_capture_dialog.py:

# -*- coding: utf-8 -*-

import sys

import getopt

import os

import algorithms

import image

import video

from Tkinter import *

from tkFileDialog import askopenfilename

 

CAM_NUMBER = 0

CAPTURE_RES = (320,240)

SHOW_IMAGE = True

CONTINUES_IMAGE = True

 

ALGORITHM = algorithms.shipFounder

ALG_ARGS = 180

 

def main():

root = Tk()

root.withdraw()

arg = askopenfilename()

videoCapture = len(arg) == 0

if videoCapture:

obj = video.RaspPiCapture(CAPTURE_RES,SHOW_IMAGE)

obj.setAlgorithm(ALGORITHM,ALG_ARGS)

obj.run()

else:

imageInput = (arg[-3:] == 'jpg' or

arg[-3:] == 'png' or

arg[-4:] == 'jpeg')

videoInput = (arg[-3:] == 'avi' or

arg[-3:] == 'mpg')

if imageInput:

obj = image.Image(arg,SHOW_IMAGE)

obj.setAlgorithm(ALGORITHM,ALG_ARGS)

if CONTINUES_IMAGE:

obj.runContinues()

else:

obj.run()

if videoInput:

obj = video.VideoPlayer(arg,SHOW_IMAGE)

obj.setAlgorithm(ALGORITHM,ALG_ARGS)

obj.run()

os.system("pause")

obj.closeAll()

return

if __name__ == "__main__":

main()

image.py:

import cv2

import sys

import time

import numpy

 

class Image():

def __init__(self,fileName,showImage):

self.fileName = fileName

self.font = cv2.FONT_HERSHEY_SIMPLEX

self.showImage = showImage

self.algorithmHandler = None

self.algArgs = None

def run(self):

start = time.time()

frame = cv2.imread(self.fileName)

if self.algorithmHandler!= None:

frame = self.algorithmHandler(frame,self.algArgs)

if self.showImage:

cv2.namedWindow(self.fileName, cv2.WINDOW_AUTOSIZE)

totalTime = time.time() - start

self.drawNumber(frame,totalTime,2)

print 'Time: ' + str(round(totalTime,2)) + 's'

asp = frame.shape[0]/frame.shape[1]

cv2.imshow(self.fileName,frame)

self.waitForAkey()

self.closeAll()

 

else:

totalTime = time.time() - start

print 'Time: ' + str(round(totalTime,2)) + 's'

return

def runContinues(self):

start = time.time()

frameNumber = 0

frame = cv2.imread(self.fileName)

while True:

if self.algorithmHandler!= None:

imProccesed = self.algorithmHandler(frame,self.algArgs)

 

if self.showImage:

cv2.namedWindow(self.fileName, cv2.WINDOW_AUTOSIZE)

totalTime = time.time() - start

self.drawNumber(imProccesed,totalTime,2)

cv2.imshow(self.fileName,imProccesed)

if cv2.waitKey(10) & 0xFF == ord('q'):

break

else:

if frameNumber == 100:

break

 

frameNumber += 1

 

totalTime = time.time() - start

avrgFps = frameNumber/totalTime

print 'Frames: ' + str(int(frameNumber))

print 'Time: ' + str(round(totalTime,2)) + 's'

print 'FPS: ' + str(int(avrgFps))

return

def closeAll(self):

cv2.destroyAllWindows()

def setAlgorithm(self,algorithm,args):

self.algorithmHandler = algorithm

self.algArgs = args

def waitForAkey(self):

while True:

if cv2.waitKey(10) & 0xFF == ord('q'):

return

def drawNumber(self,frame,number,roundNum):

string = 'Time: ' + str(round(number,roundNum)) + 's'

scale = 0.3

white = (255,255,255)

black = (0,0,0)

pts = numpy.array([[0,0],[100,0],[100,30],[0,30]])

 

cv2.fillPoly(frame, [pts], black)

cv2.putText(frame,string,(10,10),self.font,scale,white)

return

##obj = Image('test.jpg',True)

##obj.runContinues()

 

 

video.py:

import cv2

import sys

import time

import os

import numpy

import io

import picamera

 

class RaspPiCapture():

def __init__(self,resolution,showImage):

print 'init'

self.resolution = resolution

 

self.font = cv2.FONT_HERSHEY_SIMPLEX

self.showImage = showImage

self.algorithmHandler = None

self.algArgs = None

return

def outputs(self):

stream = io.BytesIO()

fps = 0

 

while True:

start = time.time()

 

yield stream

stream.seek(0)

data = numpy.fromstring(stream.getvalue(), dtype=numpy.uint8)

frame = cv2.imdecode(data, 1)

if self.algorithmHandler!= None:

frame = self.algorithmHandler(frame,self.algArgs)

 

if self.showImage:

cv2.namedWindow("Raspberri Pi Camera Capture", cv2.WINDOW_AUTOSIZE)

self.drawNumber(frame,fps,0)

cv2.imshow('Raspberri Pi Camera Capture', frame)

 

if cv2.waitKey(10) & 0xFF == ord('q'):

self.closeAll()

break

else:

if self.frameNumber == 30000:

break

 

stream.seek(0)

stream.truncate()

fps = 1.0/(time.time() - start)

self.frameNumber += 1

 

return

 

def run(self):

print 'run'

totalStart = time.time()

self.frameNumber = 0

with picamera.PiCamera() as camera:

camera.resolution = self.resolution

camera.framerate = 90

camera.video_stabilization = False

camera.exposure_mode = 'off' #'spotlight'#'auto'

#camera.shutter_speed = int(2500)

 

time.sleep(2)

start = time.time()

camera.capture_sequence(

self.outputs(),

format='jpeg',

use_video_port=True)

 

totalTime = time.time() - start

self.closeAll()

avrgFps = self.frameNumber /totalTime

print 'Resolution: ' + str(self.resolution)

print 'Frames: ' + str(int(self.frameNumber))

print 'Time: ' + str(round(totalTime,2)) + ' s'

print 'FPS: ' + str(round(avrgFps,1))

return

def closeAll(self):

cv2.destroyAllWindows()

return

def setAlgorithm(self,algorithm,args):

print 'algo'

self.algorithmHandler = algorithm

self.algArgs = args

return

def drawNumber(self,frame,number,roundNum):

string = 'Fps: ' + str(round(number,roundNum)) + 's'

scale = 0.3

white = (255,255,255)

black = (0,0,0)

pts = numpy.array([[0,0],[100,0],[100,30],[0,30]])

 

cv2.fillPoly(frame, [pts], black)

cv2.putText(frame,string,(10,10),self.font,scale,white)

return

class VideoCapture():

def __init__(self,camNumber,resolution,showImage):

self.cap = cv2.VideoCapture(camNumber)

self.cap.set(3,resolution[0])

self.cap.set(4,resolution[1])

self.cap.set(cv2.CAP_PROP_FPS,100)

self.cap.set(cv2.CAP_PROP_CONVERT_RGB,True)

self.font = cv2.FONT_HERSHEY_SIMPLEX

self.showImage = showImage

self.algorithmHandler = None

self.algArgs = None

return

def run(self):

totalStart = time.time()

frame = 0

fps = 0

 

while True:

start = time.time()

ret, self.frame = self.cap.read()

if not ret:

break

if self.algorithmHandler!= None:

self.frame = self.algorithmHandler(self.frame,self.algArgs)

 

if self.showImage:

cv2.namedWindow("Camera Capture", cv2.WINDOW_AUTOSIZE)

self.drawNumber(self.frame,fps,0)

cv2.imshow('Camera Capture', self.frame)

else:

cv2.namedWindow("Camera Capture", cv2.WINDOW_AUTOSIZE)

if cv2.waitKey(10) & 0xFF == ord('q'):

break

 

frame += 1

fps = 1.0/(time.time() - start)

totalTime = time.time() - totalStart

avrgFps = frame/totalTime

print 'Frames: ' + str(int(frame))

print 'Time: ' + str(round(totalTime,2)) + 's'

print 'FPS: ' + str(int(avrgFps))

return

def closeAll(self):

self.cap.release()

cv2.destroyAllWindows()

return

def setAlgorithm(self,algorithm,args):

self.algorithmHandler = algorithm

self.algArgs = args

return

def drawNumber(self,frame,number,roundNum):

string = 'Fps: ' + str(round(number,roundNum)) + 's'

scale = 0.3

white = (255,255,255)

black = (0,0,0)

pts = numpy.array([[0,0],[100,0],[100,30],[0,30]])

 

cv2.fillPoly(frame, [pts], black)

cv2.putText(frame,string,(10,10),self.font,scale,white)

return

class VideoPlayer():

def __init__(self,fileName,showImage):

self.cap = cv2.VideoCapture(fileName)

self.font = cv2.FONT_HERSHEY_SIMPLEX

self.showImage = showImage

self.algorithmHandler = None

self.algArgs = None

self.fileName = fileName

return

def run(self):

totalStart = time.time()

frame = 0

fps = 0

 

while True:

start = time.time()

ret, self.frame = self.cap.read()

if not ret:

break

if self.algorithmHandler!= None:

self.frame = self.algorithmHandler(self.frame,self.algArgs)

 

if self.showImage:

cv2.namedWindow(self.fileName, cv2.WND_PROP_FULLSCREEN)

self.drawNumber(self.frame,fps,0)

cv2.imshow(self.fileName, self.frame)

if cv2.waitKey(10) & 0xFF == ord('q'):

break

 

frame += 1

fps = 1.0/(time.time() - start)

totalTime = time.time() - totalStart

avrgFps = frame/totalTime

print 'Frames: ' + str(int(frame))

print 'Time: ' + str(round(totalTime,2)) + 's'

print 'FPS: ' + str(int(avrgFps))

 

self.waitForAkey()

self.closeAll()

return

def closeAll(self):

self.cap.release()

cv2.destroyAllWindows()

return

def setAlgorithm(self,algorithm,args):

self.algorithmHandler = algorithm

self.algArgs = args

return

 

def waitForAkey(self):

while True:

if cv2.waitKey(10) & 0xFF == ord('q'):

return

def drawNumber(self,frame,number,roundNum):

string = 'FPS: ' + str(round(number,roundNum)) + 's'

scale = 0.3

white = (255,255,255)

black = (0,0,0)

pts = numpy.array([[0,0],[100,0],[100,30],[0,30]])

 

cv2.fillPoly(frame, [pts], black)

cv2.putText(frame,string,(10,10),self.font,scale,white)

return

raspberry_pi_capture:

# -*- coding: utf-8 -*-

import algorithms

import image

import video

import socket

CAPTURE_RES = (480,320)

SHOW_IMAGE = False

ALGORITHM = algorithms.shipFounder

ALG_ARGS = 140

def main():

 

obj = video.RaspPiCapture(CAPTURE_RES,SHOW_IMAGE)

obj.setAlgorithm(ALGORITHM,ALG_ARGS)

obj.run()

return

if __name__ == "__main__":

main()

algorithms.py:

import cv2

import image

import numpy as np

import socket

import time

TCP_IP = "192.168.1.101"

TCP_PORT = 5005

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.bind((TCP_IP, TCP_PORT))

def threshold(img,threshold):

_,thresh = cv2.threshold(img[:,:,2],threshold,255,cv2.THRESH_BINARY)

return thresh

def shipFounder(img,threshold):

 

 

radius = max(img.shape[0]/256+1,3)

img = cv2.blur(img,(radius,radius))

_,thresh = cv2.threshold(img[:,:,1],threshold,255,cv2.THRESH_BINARY)

_,contours, hierarchy = cv2.findContours(

thresh,

cv2.RETR_CCOMP,

cv2.CHAIN_APPROX_NONE)

if len(contours) > 0:

contours = sorted(contours, key=len,reverse=True)

 

rect = cv2.minAreaRect(contours[0])

box = np.int0(cv2.boxPoints(rect))

 

cv2.drawContours(img,[box],0,(0,255,0),1)

middle = (box[0]+box[2])/2

cv2.circle(img, (middle[0],middle[1]), 2, (255,0,0),-1)

cv2.drawContours(img,contours,-1,(0,0,255),1)

 

mes=middle

s.listen(1)

conn, addr = s.accept()

print(mes)

data=np.array(mes[0],dtype=np.int32)

print('1')

x = data.tostring()

try:

conn.send(x)

except socket.error:

conn.close()

 

 

return img

##obj = image.Image('test.jpg',True)

##obj.setAlgorithm(shipFounder,200)

##obj.run()

Введение

Фундаментальной задачей для систем технического зрения является визуальная обработка данных, цель которых является дальнейшее принятие решений в области управления любыми автономными роботехническими комплексами.

При высокой динамике изменения условий окружающей среды имеет смысл внедрение данных автономных систем для выполнения ряда трудоемких работ, опасных для жизни человека, таких как разминирование, ремонт трубопроводов, мониторинг в агрессивных средах, автоматизация технологических процессов на производстве.

Внедрение робототехнических систем приводит к улучшению экономических показателей промышленного производства за счет скорости и качества автоматических операций, непрерывного мониторинга, повышающего эффективность и надежность системы управления, отсутствие переутомления, присущая человеку.

Семьдесят процентов информации человек усваивает через зрительную систему, из чего можно сделать вывод о её огромной значимости при взаимодействии с внешней средой. При рассмотрении иных методов анализа окружающей среды зрение наиболее универсально и имеет влияние на интеллект. Следовательно, у системы, претендующей на автономное поведение, обязательно должен быть орган технического зрения.

В работе будет рассмотрено очувствление роботизированного макета надводного судна (далее - Корабль), а также манипулятора Kawasaki. На первый взгляд данные задачи не имеют общих черт, но как ранее уже говорилась система технического зрения — это универсальный способ очувствления системы.

В настоящий момент, определение координат реального надводного судна в открытом водном пространстве производиться с помощью системы GPS/Глонасс. Но работа данного метода в составе робототехнического комплекса невозможно в силу ряда причин:

· Погрешность определения координат больше, чем размеры макета.

· В помещении данная погрешность возрастает ещё больше, либо система перестаёт функционировать.

· Отсутствие возможности определения ориентации в пространстве без применения сторонних систем.

Исходя из данных ограничений, можно сделать вывод, что система технического зрения идеально подходит для данной задачи. Ранее уже был реализован алгоритм определения координат корабля, но его показатели были низкие для плавной работы системы. Количество кадров в секунду составляло: 4, а разрешение изображения было: 320х240. Исходя из этого можно поставить следующие задачи: увеличение скорости обработки изображения, увеличение разрешения изображения, способность определять угол поворота корабля и его центр.

Для подтверждения универсальности системы технического зрения было предложено адаптировать данную систему и под задачи, связанные с манипулятором Kawasaki. Данный манипулятор будет производить захват одного из объектов, отличающийся по определённому признаку, при помощи механизированной руки. При захвате объекта необходимо знать: какой из объектов мы будем захватывать, его ориентацию в пространстве и то где относительно центра камеры находиться центр данного объекта. Эта информация поможет нам произвести захват при помощи манипулятора. Так же надо разработать алгоритм, который сможет работать на устройстве в режиме, приближенным к реальному времени.

Целью данной работы является разработка системы технического зрения, подходящей как робота манипулятора, так и для управление роботизированным макетом судна. Выходными данными системы технического зрения является вектор числовых параметров, передаваемый по интерфейсу Ethernet или Wi-Fi, содержащий следующие данные:

1. Координаты центра наблюдаемого объекта

2. Ориентация в пространстве наблюдаемого объекта

3. Расстояние от захвата до объекта для манипулятора Kawasaki

4. Количество отсылаемых пакетов должно составлять не менее 24 пакетов в секунду.


Аналитический обзор

Техническое зрение набирает обороты среди крупных производителей.Так как данный комплекс имеет очень большой охват применения к нему находят очень разное применение в разных отраслях.

Техническое зрение в автомобильной индустрии

Активную работу в разработке средств технического зрения ведут лидеры автопрома: General Motors, Volvo, Ford, Toyota, VW AG, Infiniti. Рассмотрим несколько примеров разработок.

General Motors вела разработку данной системы для управления легковым автомобилем Opel Vectra. Данную автоматическую систему можно использовать на скоростях, не превышающих 100км/ч. Авто пилот при помощи средств технического зрения распознает препятствия, определяет положения других участников движения, разметку и знаки дорожного движения. Исходя из дорожной ситуации бортовой компьютер управляет двигателем, рулевой рейкой или тормозной системой. На ранних стадиях данная система может предотвращать аварийные ситуации.

Volvo, Ford и Infiniti в настоящее время внедряют систему под названием «антисон». Она состоит из системы технического зрения, сенсора скорости и сигнального устройства. Причина разработки данной системы является появление усталости, ослабление внимания и сон водителя автотранспорта. Основная задачей данной комплекса является предупреждения нечаянного смещения автомобиля с полосы движения.

Toyota завершила работы над автомобилем ASC-2(Advanced Safety Vehicle). Данный автомобиль имеет в своем ассортименте 9 различных комплексов безопасности. Одна из систем безопасности следит за состоянием дорожного покрытия, влажности, а также его обледенением. Автомобиль информирует пользователя о условиях окружающей среды. Данные системы работают так же с системами технического зрения. Так же данная система следит за обстановкой потока машин. Если система понимает, что человек не успевает отреагировать на аварийную ситуацию, то она производит торможения для минимизации ущерба.

Volkswagen AG начала внедрение систем технического зрения в серийные автомобили. Можно сказать, что данные системы пользуются огромной популярностью среди покупателей. Одна из систем называется «Area View», которая показывает на мультимедийном дисплее ситуацию вокруг машины. Обзор в 360o дает возможности безопасного управления транспортным средством в режиме маневрирования, парковки.

Рисунок 1 – Пример работы системы «Area View»

Как можно видеть в данной системе учувствуют 4 различных камеры, при помощи которых происходит склейка изображения в одно с обзором в 360 градусов.

Так же данный концерн разработал ассистента движения по полосам «Lane Assist». При активации данной системы бортовой компьютер, при помощи информации получаемой с камеры, будет следить за разметкой и не даст машине выйти из полосы движения. Так же данная система сработает в экстренных ситуация. При потере сознания водителя, данная система так же берет управления транспортным средством. В такой ситуации происходит анализ окружающей обстановки, затем безопасное торможения, не выходя из занимаемой полосы. В момент полной остановки система начинает сигнализировать другим участникам движения о преднамеренной остановке (включаются поворотные огни).

Рисунок 2 – Пример работы системы «Lane assist»

Ещё одна система называет «Light Assist». На скорость выше 60 км/ч, в темноте ассистент ведет переключение дальним светом. Система определяет приближение встречного транспортного средства и автомобиля, едущего перед вами, затем автоматически переключается на ближний свет во избежание ослепления водителя впереди идущего транспортного средства.

Рисунок 3 – Пример работы системы «Light assist»

Так же данная система получила развитие и имеет название «Dynamic Light Assist». Отличия от предыдущей системы заключается в том, что при определении впереди идущего транспортного средства, не происходит выключения дальнего света, а происходит лишь ограничение потока света именно в той области, где это не обходимо. [1]

Рисунок 4 – Пример работы «Dynamic Light Assist»

Вывод: Системы технического зрения в автоиндустрии имеет большую важность. Данный интерес появился исходя из особенностей управления т/с, в котором хорошее зрение человека является обязательным условием при управлении автомобилем. Развитие автопилота тесно связано с развитием систем технического зрения. На данном момент времени можно видеть, как автопроизводители отлаживают вспомогательные системы уже на серийных автомобилях.



Поделиться:


Последнее изменение этой страницы: 2016-06-26; просмотров: 303; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.217.203.172 (0.291 с.)