산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 사물 인터넷 기술

로봇 비전 개발자의 광범위한 요구를 충족시키는 오픈 소스 소프트웨어


이 기사는 시각 유도 로봇에 대한 AspenCore 특별 프로젝트의 일부입니다.

로봇 비전 애플리케이션은 복잡한 요구 사항 세트를 가져올 수 있지만 오픈 소스 라이브러리는 거의 모든 요구 사항에 대한 솔루션을 제공할 준비가 되어 있습니다. 개발자는 기본 이미지 처리 및 객체 인식에서 동작 계획 및 충돌 방지에 이르기까지 다양한 오픈 소스 패키지를 찾을 수 있으며, 짧은 기사에서 충분히 언급할 수 있는 것보다 훨씬 더 많이 언급할 수 있습니다. 그럼에도 불구하고 개발자가 정교한 로봇 시스템을 구현하는 데 도움이 되는 몇 가지 주요 오픈 소스 이미지 처리 패키지가 있습니다. (참고:이 보고서는 보다 기본적인 이미지 기반 알고리즘을 위한 라이브러리에 중점을 두고 있으며 특히 AI 기반 로봇 비전을 위한 오픈 소스 소프트웨어는 제외합니다.)

로봇 비전 소프트웨어에 대한 어떤 기사도 OpenCV(Open Source Computer Vision Library)를 강조 표시하는 데 실패할 수 없습니다[출처]. 사용 가능한 오픈 소스 소프트웨어 패키지 중에서 OpenCV는 아마도 가장 널리 사용되고 기능이 풍부할 것입니다. 2,500개 이상의 알고리즘을 구현하는 OpenCV 배포판은 다음을 포함하는 일련의 모듈에서 이미지 처리 요구 사항을 해결합니다.

C++로 작성된 OpenCV는 C++, Python, Java 및 Matlab용 인터페이스와 함께 사용할 수 있으며 Windows, Linux, Android 및 Mac OS를 지원합니다. 단일 명령, 다중 데이터(SIMD) 명령 세트에 대한 지원과 함께 OpenCV는 GPU 모듈을 통해 많은 기능에 대한 CUDA 기반 GPU 가속을 제공하고 ocl 모듈을 통해 OpenCL 가속을 제공합니다. 최근에 출시된 OpenCV 4.0은 인기 있는 Kinect Fusion 알고리즘의 구현을 포함하여 다양한 성능 개선 및 기능을 제공합니다.

기능을 위해 OpenCV는 로봇 비전으로 빠르게 움직이려는 개발자의 인내심을 능가하는 학습 곡선이 필요할 수 있습니다. 이러한 개발자에게는 Python 기반 SimpleCV [source]가 답이 될 수 있습니다. OpenCV를 기반으로 구축된 SimpleCV는 고급 로봇 비전 개발자에게 필요한 기능을 제공하지만 경험이 부족한 개발자가 간단한 Python 함수 호출로 기본 머신 비전 기능을 탐색하는 데 도움이 되는 액세스 가능한 프레임워크를 제공합니다. 예를 들어 개발자는 SimpleCV Image 클래스(아래 목록의 img.binarize())에 있는 간단한 내장 메서드를 사용하여 이미지 임계값과 같이 일반적으로 사용되는 기능을 빠르게 구현하고 마지막으로 그림 1과 같은 결과를 표시할 수 있습니다.

from SimpleCV import Image, Color, Display # 절반과 절반을 수행하는 함수를 만듭니다. image.def halfsies(left,right):result =left # 오른쪽 이미지를 오른쪽이 되도록 자릅니다. 자르기 =right.crop(right.width/2.0,0,right.width/2.0,right.height) # 이제 자르기를 왼쪽 이미지에 붙여넣습니다. result =result.blit(crop,(left.width/2,0)) # 결과를 반환합니다. return result# imgur.img =Image('http://i.imgur.com/lfAeZ4n.png')# 90의 임계값을 사용하여 이미지를 이진화#하고 결과를 반전시킵니다. 90).invert()# 나란히 생성 image.result =halfsies(img,output)# 결과 이미지 표시.result.show()# 결과를 file.result.save('juniperbinary.png'에 저장 )


그림 1. 위에 나열된 Python 코드의 결과(출처:SimpleCV)

OpenCV 및 SimpleCV는 기본 이미지 처리 기능과 함께 로봇 시스템이 물체를 다루거나 물리적 환경 내에서 안전하게 작동하는 데 필요한 많은 고급 이미지 처리 알고리즘을 구현합니다. 이러한 많은 계산에 사용되는 기본 데이터 구조 중 하나는 포인트 클라우드입니다. 포인트 클라우드는 객체를 나타내는 다차원 데이터 포인트의 모음입니다(그림 2). 카메라에서 획득한 물체의 포인트 클라우드는 물체 식별, 정렬 및 피팅과 같은 기본적인 로봇 작업에 사용됩니다. 포인트 클라우드 작업을 위해 PCL(Point Cloud Library) [소스]은 필터링, 피팅, 키포인트 추출, 세분화 등을 위한 알고리즘을 구현합니다.


그림 2. 기본 토러스에 대한 포인트 클라우드 데이터 세트. (출처:Wikimedia Commons/Kieff).


사물 인터넷 기술

  1. IoT의 소프트웨어 업데이트:SOTA 소개
  2. GE, 12억 달러 규모의 IIoT 회사 출범
  3. 모든 것이 IoT로 전환되고 있습니다.
  4. 오래된 것과 IoT가 만나는 곳, SaaS 통합
  5. Software AG는 IoT의 미래를 예측합니다
  6. 산업 영역에서 신뢰할 수 있는 소프트웨어는 안전을 의미합니다.
  7. Tata는 IIoT의 이점을 극찬합니다
  8. 소프트웨어 테스트 IOT 장치의 과제
  9. ERP 소프트웨어 개선이 필요한 10가지 신호
  10. DevOps를 사용하여 임베디드 소프트웨어 문제 해결