발명의 개시
상기한 과제를 해결하기 위한 인식 처리 방법은, 평면 또는 공간 내에 분포하는 인식대상물의 특징점군과 미리 등록된 모델의 특징점군과의 대응 관계에 의거하여 인식대상물을 인식하는 것으로서, 이하의 제 1 내지 제 4의 스텝을 실행하는 것을 특징으로 한다.
제 1 스텝에서는, 모델의 특징점군에 포함되는 각 특징점을 특정수(n)(n≥2)씩 조합시킨 각 조합중, 적어도 한 쌍의 특징점 사이의 거리가 미리 정한 기준치를 충족시키는 것을 모델 조합으로 설정하여, 설정된 모델 조합을 특정하기 위한 정보를 메모리에 등록한다. 제 2 스텝에서는, 인식대상물의 특징점군에 포함되는 각 특징점을 특정수(n)씩 조합시킨 각 조합중, 적어도 한 쌍의 특징점 사이의 거리가 기준치를 충족시키는 것을, 비교대상 조합으로 설정한다. 제 3 스텝에서는, 메모리의 등록 정보에 의해 특정되는 모델 조합과 비교대상 조합을 차례로 대응시켜서, 대응시킨 조합마다, 한쪽 조합의 각 특징점을 다른쪽 조합의 각 특징점으로 변환한 경우의 변환 파라미터를 구하고, 또한, 이 변환 파라미터에 관해, 모델의 특징점군과 인식대상물의 특징점군과의 관계에 대한 적합도를 구한다. 제 4 스텝에서는, 제 3 스텝에서 구한 각 적합도에 의거하여, 모델의 특징점군과 인식대상물의 특징점군과의 대응 관계를 나타내는 변환 파라미터를 특정한다.
인식대상물의 위치나 자세가 모델과 달라도, 모델의 소정 수의 특징점에 대한 대응점이 판명되어 있는 경우에는, 이들 대응 관계에 있는 특징점의 좌표를 이용하여, 모델의 특징점군을 인식대상물의 특징점군과 같은 상태로 변환하기 위한 변환 파라미터를 구할 수 있다. 상기한 방법은, 이 원리를 역으로 응용한 것이다.
즉, 이 방법에서는, 모델의 특징점군과 인식대상물의 특징점군과의 대응 관계는 분명하지 않지만, 각 특징점군으로부터 각각 n개씩 추출한 특징점을 대응 관계에 있다고 가정하고, 양자 사이의 관계를 나타내는 변환 파라미터를 구한다. 실제로 이들의 특징점이 대응 관계에 있으면, 특징점군의 다른 특징점 사이의 관계도, 같은 변환 파라미터에 의해 나타낼 수 있는 것이다. 따라서 상기한 변환 파라미터를 이용하여 인식대상물 또는 모델의 특징점군을 변환한 경우, 그 변환 후의 좌표가 다른쪽의 특징점군에 적합하는 정도는, 올바르게 대응시켜지지 않은 특징점의 조합으로부터 구한 변환 파라미터에 의한 경우의 적합도보다 높아진다고 고려된다. 따라서, 특징점의 조합의 대응시킴마다 구한 변환 파라미터에 관해, 모델의 특징점과 인식대상물의 특징점과의 관계에 대한 적합도를 구하고, 이들의 적합도중 최대의 적합도를 얻은 때의 변환 파라미터를 특정하면, 인식대상물의 위치나 자세 등을 높은 신뢰도로 인식할 수 있다.
또한, 특정되는 변환 파라미터는, 모든 대응시킴중에서 최대의 적합도가 얻어진 때의 변환 파라미터인 것이 바람직하지만, 이것으로 한정되는 것이 아니다. 예를 들면, 대응시킴의 도중에 적합도가 미리 정한 목표치 이상이 된 시점에서 처리를 중단하고, 그 적합도를 얻은 때의 변환 파라미터를 특정하여도 좋다.
상기한 방법에 의하면, 인식대상물을 높은 정밀도로 인식하는 것이 가능해진다. 또한, 특징점 사이의 거리의 기준치를 조정함에 의해 n개의 특징점의 조합의 수를 조일 수 있기 때문에, 변환 파라미터나 적합도의 산출에 필요로 하는 시간이 너무 길어지는 것을 방지할 수 있다.
상기한 방법에 있어서, 인식대상물의 화상에 포함되는 특징점의 집합을 처리대상의 특징점군으로 하는 경우에는, 제 1 스텝 및 제 2 스텝에서는, 특정수(n)를 2 이상으로 설정할 수 있다. 이 경우에는, 각 특징점군 사이의 대응 관계를, 아핀(affine) 변환의 변환 파라미터에 의해 나타낼 수 있다.
또한, 인식대상물에 대한 3차원 계측 처리에 의해 구하여진 공간 내의 특징점의 집합을 처리대상의 특징점군으로 하는 경우에는, 제 1 스텝 및 제 2 스텝에서는, 특정수(n)를 3 이상으로 설정할 수 있다. 이 경우에는, 각 특징점군 사이의 대응 관계를, 동차좌표(同次座標) 변환의 변환 파라미터에 의해 나타낼 수 있다.
상기 방법의 바람직한 양태에서는, 제 1 스텝 및 제 2 스텝에서, 특정수(n)를 3으로 하여, 각 변의 길이가 각각 소정의 상한치와 하한치 사이의 값을 취하는 삼각형을 구성하는 특징점의 조합을 설정한다. 삼각형은, 면을 나타내는 최소의 단위이고, 인식대상물의 크기나 형상을 표현하기 쉽다. 또한, 모델 조합과 비교대상 조합 사이에서의 대응시킴도, 3점인 경우에는 6과 같이 끝나고, 대응시킴을 용이하게 행할 수 있다.
또한 바람직한 양태에서는, 제 1 스텝 및 제 2 스텝에서는, 한 변의 길이가 상기한 상한치와 하한치 사이의 값이 되는 정삼각형을 구성하는 특징점의 조합을 설정한다. 이와 같이 하면, 특징점의 조합 수를 대폭적으로 삭감하여 처리를 고속화할 수 있다. 또한, 유저에 있어서도, 대상물에 대한 삼각형의 설정 상태를 추측하기 쉬워지기 때문에, 상한치나 하한치의 설정이 용이해진다.
특정수(n)를 3으로 하는 경우의 다른 양태에서는, 제 1 스텝 및 제 2 스텝에서, 한 변의 길이가 소정의 상한치와 하한치 사이의 값이 되고, 그 양단의 각도가 각각 미리 정한 기준의 각도 범위에 들어가는 삼각형을 구성하는 특징점의 조합을 설정한다. 또한 다른 양태에서는, 2변의 길이가 각각 소정의 상한치와 하한치 사이의 값이 되고, 이들의 변이 이루는 각도가 미리 정한 기준의 각도 범위에 들어가는 삼각형을 구성하는 특징점의 조합을 설정한다.
이들의 양태에서도, 삼각형의 변의 길이나 각도에 의해 특징점의 조합 수를 조일 수 있기 때문에, 처리 시간을 단축할 수 있다.
상기한 인식 처리 방법의 다른 바람직한 양태에서는, 제 3 스텝에서, 대응시켜진 모델 조합과 비교대상 조합에 관해 변환 파라미터를 구한 후에, 이 변환 파라미터에 의해 모델의 특징점군 및 인식대상물의 특징점군의 어느 한쪽을 변환하고, 변환 후의 특징점이 변환되지 않은 쪽의 특징점군에 대응한 빈도를 나타내는 수치를 변환 파라미터의 적합도로서 산출한다.
상기한 양태에 의하면, 모델의 특징점군과 인식대상물의 특징점군과의 관계에 대한 변환 파라미터의 적합도를 구체적인 수치로서 구할 수 있다. 따라서, 적합도를 나타내는 수치를 비교함에 의해, 모델의 특징점군과 인식대상물의 특징점과의 대응 관계를 나타내는 변환 파라미터를 용이하게 특정할 수 있다. 또한, 모델의 특징점군을 변환하도록 하면, 인식대상물이 모델보다 크게 되어, 처리 대상의 특징점이 증가한 경우에도, 적합도의 산출에 필요로 하는 연산 시간이 길어지는 것을 막을 수 있다.
상기한 인식 처리 방법이 적용된 제 1의 화상 처리 장치는, 인식대상물의 화상을 처리함에 의해, 이 인식대상물에 관해, 평면 또는 공간 내에 분포하는 복수의 특징점을 취득하고, 이들의 특징점군과 미리 등록된 모델의 특징점군과의 대응 관계에 의거하여 인식대상물을 인식하는 것이다. 이 화상 처리 장치는, 특징점군중의 각 특징점 사이의 거리에 관해 소정의 기준치를 입력하기 위한 입력 수단과, 모델의 특징점군중의 각 특징점을 특정수(n)(n≥2)씩 조합시킨 각 조합중, 적어도 한 쌍의 특징점 사이의 거리가 기준치를 충족시키는 것을 모델 조합으로 설정하는 모델 설정 수단과, 모델 설정 수단에 의해 설정된 모델 조합을 특정하기 위한 정보를 메모리에 등록하는 등록 처리 수단과, 입력 화상으로부터 추출된 특징점을 상기 특정수(n)씩 조합시킨 각 조합중, 적어도 한 쌍의 특징점 사이의 거리가 상기한 기준치를 충족시키는 것을, 비교대상 조합으로 설정하는 조합 설정 수단과, 메모리의 등록 정보에 의해 특정되는 모델 조합과 비교대상 조합을 차례로 대응시켜서, 대응시킨 조합마다, 한쪽 조합의 각 특징점을 다른쪽 조합의 각 특징점으로 변환한 경우의 변환 파라미터를 구하고, 또한, 이 변환 파라미터에 관해, 모델의 특징점군과 인식대상물의 특징점군과의 관계에 대한 적합도를 구하는 대조 처리 수단과, 대조 처리 수단에 의해 구하여진 각 적합도에 의거하여, 모델의 특징점군과 인식대상물의 특징점군과의 대응 관계를 나타내는 변환 파라미터를 특정하는 특정 수단을, 구비한다.
상기한 장치가 2차원 인식 처리용의 화상 처리 장치로서 구성되는 경우에는, 최종적으로 특정된 변환 파라미터에 의해 화상중의 인식대상물의 위치나 자세를 판별하고, 그 판별 결과를 출력할 수 있다. 또한 특정된 변환 파라미터에 의해 처리 대상의 화상의 각 점을 변환함에 의해 화상의 어긋남을 보정한 후에, 보정 후의 화상을 대상으로, 패턴 인식 등의 화상 처리를 실행할 수도 있다.
상기한 장치가 3차원 인식 처리용의 화상 처리 장치로서 구성되는 경우에는, 최종적으로 특정된 변환 파라미터에 의해 공간 내의 인식대상물의 위치나 자세를 판별하고, 그 판별 결과를 출력할 수 있다. 또한, 특정된 변환 파라미터를 이용하여 모델측의 특정한 점을 변환함에 의해, 인식대상물에 있어서의 해당 특정한 점에의 대응점을 인식할 수도 있다.
상기한 인식 처리 방법이 적용된 제 2의 화상 처리 장치는, 동형상(同形狀)의 복수의 인식대상물을 촬상하도록 설치된 복수의 촬상 장치로부터 각각 화상을 입력하고, 각 입력 화상을 이용한 3차원 계측 처리에 의해 각 인식대상물에 괸해 공간 내에 분포하는 복수의 특징점의 공간 좌표를 취득하고, 이들의 특징점군과 미리 등록된 모델의 특징점군과의 대응 관계에 의거하여 복수의 인식대상물을 개별적으로 인식하는 것이다. 이 화상 처리 장치는, 특징점군중의 특징점 사이의 거리에 괸해 소정의 기준치를 입력하기 위한 입력 수단과, 모델의 특징점군중의 각 특징점을 특정수(n)(n≥3)씩 조합시킨 각 조합중, 적어도 한 쌍의 특징점 사이의 거리가 기준치를 충족시키는 것을 모델 조합으로 설정하는 모델 설정 수단과, 모델 설정 수단에 의해 설정된 모델 조합을 특정하기 위한 정보를, 메모리에 등록하는 등록 처리 수단과, 3차원 계측에 의해 취득한 특징점을 상기한 특정수(n)씩 조합시킨 각 조합중, 적어도 한 쌍의 특징점 사이의 거리가 기준치를 충족시키는 것을, 비교대상 조합으로 설정하는 조합 설정 수단과, 메모리의 등록 정보에 의해 특정되는 모델 조합과 조합 설정 수단에 의해 설정된 비교대상 조합을 차례로 대응시켜서, 대응시킨 조합마다, 한쪽 조합의 각 특징점을 다른쪽 조합의 각 특징점으로 변환한 경우의 변환 파라미터를 구하고, 또한, 이 변환 파라미터에 관해, 모델의 특징점군과 인식대상물의 특징점군과의 관계에 대한 적합도를 구하는 대조 처리 수단과, 대조 처리 수단에 의해 구한 각 적합도중, 소정의 기준치를 초과하는 것을 적어도 하나 특정하고, 특정된 적합도마다에, 그 적합도에 대응하는 변환 파라미터를 이용하여 인식대상물을 하나 인식하는 물체 인식 수단을 구비한다.
상기한 화상 처리 장치에 의하면, 동일 형상의 복수의 인식대상물이 다양한 방향을 향하여 배치되어 있는 경우에도, 각각의 인식대상물을 단시간에 정밀도 좋게 판별하는 것이 가능해진다.
상기한 인식 처리 방법 및 화상 처리 장치에 의하면, 인식대상물의 특징점군과 모델의 특징점군 사이에서 대응 관계에 있는 특징점에는 공통의 변환 파라미터를 적용할 수 있다는 원칙에 의거하여, 각 특징점 이간의 대응 관계를 정밀도 좋게 인식할 수 있다. 또한, 인식대상물의 위치나 자세가 변화하여도, 특징점의 수가 극단적으로 변하는 일은 없기 때문에, 처리 시간이 길어질 우려가 없다. 또한, 인식대상물의 크기나 형상에 따라 특징점 사이의 거리에 대한 기준치를 조정함에 의해, 조합 대상이 되는 특징점의 조합을 조일 수 있기 때문에, 처리 시간을 단축할 수 있다.
발명을 실시하기 위한 최선의 형태
도 1은 본 발명의 한 실시예에 관련된 화상 처리 장치의 구성을 도시한다.
이 화상 처리 장치는, 공업 제품이나 인쇄물 등, 형상이나 크기가 거의 동일한 인식대상물을 하나씩 촬상하고, 생성된 화상중의 인식대상물의 위치나 자세를 인식하기 위한 것으로, 촬상을 위한 카메라(1)와 컨트롤러(2)에 의해 구성된다.
컨트롤러(2)에는, 화상 입력부(3), 에지 추출부(4), 화상 메모리(5), 입출력 인터페이스(6), 화상 출력부(7), 모니터(8), 제어부(10) 등이 포함된다. 화상 입력부(3)는, 카메라(1)용의 인터페이스나 A/D 변환 회로를 포함하는 것으로서, 카메라(1)로부터의 농담 화상 신호를 입력하여 디지털 변환한다. 변환 후의 디지털 화상은, 화상 메모리(5)에 격납됨과 함께, 에지 추출부(4)에 주어진다.
에지 추출부(4)에는, 디지털 화상을 미분 처리하여 농도 구배의 크기를 화소마다 산출하는 미분 회로와, 산출된 농도 구배의 크기를 소정의 임계치와 비교하는 비교 회로가 포함된다. 이들의 회로에 의한 처리에 의해, 디지털 화상은, 에지 구성 화소를 흑화소로 하고, 그 밖의 화소를 백화소로 하는 2치의 에지 화상으로 변환된다. 이 변환 후의 에지 화상도 화상 메모리(5)에 격납된다.
입출력 인터페이스(6)는, 도시하지 않은 입력부(키보드, 마우스 등)나 외부 기기에 접속된다. 화상 출력부(7)에는, D/A 변환 회로나 모니터(8)에의 인터페이스 회로 등이 포함된다. 이 화상 출력부(7)는, 제어부(10)로부터의 지령에 따라 화상 메모리(5)나 RAM(13)으로부터 표시 대상의 데이터를 판독하고, 이를 모니터(8)에 표시시킬 수 있다.
제어부(10)는, CPU(11), ROM(12), RAM(13), 및 하드디스크(14)에 의해 구성된다. 하드디스크(14)에는, 인식 처리를 실행하는데 필요한 프로그램이나 설정 데이터 등이 격납되어 있다. 또한, RAM(13)에는, 이들의 프로그램이나 설정 데이터에 의거한 처리에 의해 설정된 특징점의 조합이나, 후기하는 일치도(一致度) 등의 데 이터가 격납된다.
도 1에는 도시하지 않지만, 계측 대상물이 카메라(1)의 시야에 들어오면, 도시하지 않은 센서 또는 CPU(11)로부터 카메라(1)에 트리거 신호가 입력된다. 카메라(1)는, 이 트리거 신호에 따라 촬상을 행한다. 이하, 이 촬상에 의해 생성되는 인식대상물의 디지털 화상을 「처리대상 화상」이라고 하고, 인식대상물인 것을, 단지 「대상물」이라고 한다.
하드디스크(14)에는, 미리 대상물의 모델을 촬상하여 얻어진 모델 화상이나 그 에지 화상 및 후기하는 모델 삼각형에 관한 정보가 등록되어 있다. 대상물의 처리대상 화상 및 에지 화상이 화상 메모리(5)에 격납되면, CPU(11)는, 우선, 에지 화상을 이용하여, 그 화상에 분포하는 특징점군(이하에서는, 「처리대상의 특징점군」이라고 한다. 이 실시예의 특징점군은 에지 구성점의 집합이다.)을 모델의 에지 화상에서의 특징점군(이하, 「모델의 특징점군」이라고 한다.)과 대조하는 처리에 의해, 대상물의 위치나 방향 등을 인식한다. 또한, 이 인식 결과에 의거하여, 처리대상 화상중의 대상물을 포함하는 범위에 계측 영역을 설정하는 처리나, 이 계측 영역 내의 대상물이 모델 화상과 같은 자세가 되도록 보정하는 처리를 실행한 후에, 본격적인 계측 처리나 검사의 처리로 이행한다.
이하, 처리대상의 특징점군과 모델의 특징점군을 대조하는 처리에 관해, 상세히 설명한다.
처리대상 화상중의 대상물의 위치나 방향은, 모델 화상과는 다른 것으로 되는 일이 많다. 또한, 크기에 대해서도, 카메라(1)에 대한 거리에 따라서는, 모델 화상의 크기와 다른 것으로 될 가능성이 있다.
따라서 모델의 특징점군중의 일특징점의 좌표를 (mxi, myi)로 하고, 처리 대상의 특징점군에 있어서의 (mxi, myi)에 대응하는 점의 좌표를 (txi, tyi)라고 하면, (txi, tyi)는, (mxi, myi)를 아핀 변환한 경우의 변환 후의 좌표에 상당한다고 고려된다.
여기서, x, y의 각 축방향에서의 대상물의 위치 어긋난량을 dx, dy로 하고, 모델에 대한 대상물의 회전 각도를 θ로 하고, 모델에 대한 계측 대상물의 x방향에서의 배율을 bx, y방향에서의 배율을 by라고 하면, 상기한 2점의 관계는, 하기한 (1)식과 같이 표시된다.
상기한 (1)식에 표시하는 바와 같이, 2차원의 화상 처리에서는, 모델과 대상물과의 대응 관계를, dx, dy, θ, bx, by의 5개의 파라미터에 의해 나타낼 수 있다. 이하에서는, 이들의 파라미터를 변환 파라미터라고 부르고, 이들 변환 파라미터에 의해 특정되는 행렬(H)을 변환 행렬이라고 부른다. 변환 행렬(H)도, 광의의 변환 파라미터라고 고려된다. 따라서, 이 변환 행렬(H) 또는 dx, dy, θ, bx, by를 구하는 처리에 의해, 대상물의 상태를 인식할 수 있다.
여기서, (1)식을 전개하면, (1-1)식 및 (1-2)식을 도출할 수 있다.
tx1 = mx1·T00 + myi·T01 + T02 … (1-1)
ty1 = mx1·T10 + myi·T11 + T12 … (1-2)
또한, T01 내지 T12는, 하기한 바와 같이, 변환 행렬(H)의 각 요소를 치환한 것이다.
T00 = bx· cosθ … (a)
T01 = -by·sinθ … (b)
T02 = dx … (c)
T10 = bx·sinθ … (d)
T11 = by·cosθ … (e)
T12 = dy … (f)
상기에 의하면, 모델의 특징점군중의 3점의 좌표를 각각 (mxi, myi)로 하고, 이들의 점에 관해, 처리대상의 특징점군중에 있어서의 대응점의 좌표(txi, tyi)를 특정할 수 있으면, 각 대응점의 좌표의 조합을 (1-1)식 및 (1-2)식에 적용시켜서, 3원연립 방정식을 설정할 수 있다. 따라서, 이들의 연립 방정식을 풀음에 의해, T00 내지 T12의 값을 구할 수 있고, 변환 행렬(H)을 특정할 수 있다.
또한, T00 내지 T12의 값이 판명되면, T02, T12의 값으로부터 dx, dy를 특정할 수 있다((c), (f)식 참조.). 또한, T00, T10의 값으로부터 θ를 구할 수 있다((a), (d)식에 의해, tanθ=sinθ/cosθ=(T10/T00)가 되기 때문에, θ=tan-1(T10/T00)이다.). 또한, θ의 값이 구하여지면, (a), (b), (d), (e)식으로부터 bx, by의 값을 구할 수도 있다.
이와 같이, 처리대상의 특징점군과 모델의 특징점군 사이에서 대응 관계에 있는 특징점을 3조(組) 이상 특정할 수 있으면, 이들의 점의 좌표를 이용한 연산에 의해 각종의 변환 파라미터를 구할 수 있다.
상기한 고찰에 의거하여, 이 실시예에서는, 모델 및 처리 대상의 각 특징점의 좌표를 이용한 연산 처리에 의해, 미지의 변환 행렬(H)을 구함에 의해, 대상물을 인식하도록 하고 있다.
이 처리에서는, 미리, 모델의 특징점군중에서 소정의 조건을 충족시키는 삼각형을 구성하는 3개의 특징점을 복수조 추출하고, 이들의 특징점의 조합을 등록한다. 이하에서는, 이 3개의 특징점의 조합을, 각 특징점에 의해 구성되는 삼각형으로서 파악하고, 「모델 삼각형」이라고 부른다.
처리대상의 특징점군에 대해서도, 모델의 특징점군에 대한 것과 같은 조건으로, 3개의 특징점의 조합을 복수조 추출한다(이하, 이 특징점의 조합을 「비교대상 삼각형」이라고 부른다.). 그리고, 상기한 모델 삼각형과 비교대상 삼각형을 차례로 대응시키고, 대응시킴마다, 그 대응시킴이 올바른 것이라고 가정하여, 각 삼각형의 정점(頂点)의 좌표를 (1-1)식 및 (1-2)식에 적용시켜서, 변환 행렬(H)을 산출 한다. 또한, 대응시킴마다 구한 변환 행렬(H)중, 모델 특징점군의 각 점을 이 행렬(H)에 의해 변환한 때의 변환 후의 특징점군이 처리대상의 특징점군에 적합할 정도(이하, 「변환 행렬(H)의 적합도」 또는 단지 「적합도」라고 한다.)에 의해, 모델의 특징점군과 처리대상의 특징점군과의 대응 관계를 가장 적확하게 나타낸 변환 행렬(H)(이하, 「최적의 변환 행렬(H)」이라고 한다.)를 특정한다.
또한, 이 실시예에서는, 각 변의 길이의 값이 각각 소정의 수치 범위(후기하는 상한치(dH)와 하한치(dL)에 의해 정해진다.)에 들어가고 있는 것을, 모델 삼각형 및 비교대상 삼각형의 추출 조건으로 한다. 상한치(dH) 및 하한치(dL)는, 유저의 입력에 따라 자유롭게 변경할 수 있다.
도 2는, 모델 삼각형과 비교대상 삼각형과의 대응시킴 예를 도시한다.
대응시킴 처리에서는, 모델 삼각형의 각 정점(A, B, C)에 대해, 비교대상 삼각형의 1점을 점(A)에의 대응점(A')으로 하고, 또 1점을 점(B)에의 대응점(B')으로 하고, 나머지 1점을 점(C)에의 대응점(C')으로 한다. 단, 특징점군 사이의 대응 관계는 전혀 판명되어 있지 않기 때문에, 각 점의 대응 관계를 변경하여, 6가지의 대응시킴을 행할 필요가 있다.
상기한 점(A, B, C)과 점(A', B', C')의 대응시킴에 의해 구한 변환 행렬(H)이 최적의 것인지의 여부는, 상기한 적합도에 의거하여 판단된다. 이 실시예에서는, 모델의 특징점군중의 각 특징점을 변환 행렬(H)에 의해 변환하고, 처리대상의 특징점군중의 변환 후의 좌표에 가까운 위치에 특징점이 있는지의 여부를 서치하 고, 특징점이 발견된 정도를 적합도로서 구하고 있다.
점(A, B, C)과 점(A', B', C')의 대응시킴이 올바르면, 이 대응시킴에 의거하여 구한 변환 행렬(H)에 의해 모델의 특징점군중의 각 특징점을 변환하면, 변환 후의 좌표 또는 그 부근 위치에 높은 신뢰도로 대응점이 존재한다고 고려된다. 따라서 잘못된 대응시킴이 행하여진 경우의 변환 행렬(H)보다도, 적합도가 높아진다고 고려된다.
따라서, 이 실시예에서는, 최대의 일치도가 얻어진 때의 변환 행렬(H)을 최적의 변환 행렬로서 특정하고, 특정한 변환 행렬에 의거하여, 대상물의 인식 처리를 행하도록 하고 있다.
도 3은, 모델 화상 및 처리대상 화상의 구체예를, 인식 처리의 결과와 함께 도시한다.
이 예는, 인쇄물을 인식대상물로 하는 것으로서, 도면중, 좌측에 모델 화상 및 그 에지 화상을 도시하고, 우측에 처리대상 화상 및 그 에지 화상을 도시하고 있다. 또한, 이 예에서는, 각 에지 화상중에, 각 화상 사이에서 대응시켜지는 삼각형의 조중의 특정한 1조(삼각형(ABC와 A'B'C))를 나타내고 있다.
삼각형은, 평면을 나타내는 최소의 단위이고, 특징점과의 관계도 인식하기 쉽다. 따라서 도 3에 도시하는 바와 같은 에지 화상과 특정한 삼각형을 모니터에 표시하면, 유저는, 대상물의 위치나 회전 상태를 용이하게 인식하는 것이 가능해진다.
또한, 이 실시예에서는, 삼각형의 각 변의 길이의 범위를 정하는 상한치(dH) 및 하한치(dL)를 조정함에 의해, 추출되는 삼각형의 수를 조일 수 있다. 따라서 특징점군중에 다수의 특징점이 있어도, 삼각형의 각 변의 길이 범위를 조정함에 의해, 대조 처리의 시간이 길어지는 것을 막을 수 있다. 또한, 대상물의 크기나 형상에 따라 각 변의 길이의 범위를 정하도록 하면, 삼각형의 분포 패턴의 특징이 명확하게 되고, 적합도의 신뢰성을 높일 수 있다.
따라서 삼각형의 추출 조건을 가변 설정함에 의해, 연산 시간을 단축할 수 있고, 또한 인식의 정밀도를 확보할 수 있다.
또한, 추출 대상의 삼각형을 정삼각형까지 한정하면, 삼각형의 수를 대폭적으로 조여서 연산의 시간을 단축할 수 있다. 또한, 유저가 상한치(dH)나 하한치(dL)를 설정하는 경우에, 특징점군과 삼각형과의 관계를 이미지하기 쉽게 되기 때문에, 설정을 간단하게 행할 수 있다.
또한, 대상물의 인식 처리에서는, 모델에 대한 대상물의 위치 어긋남, 회전 어긋남, 배율 변화를 인식 결과로서 출력하고 싶은 경우에는, 아핀 변환의 실질적인 변환 파라미터인 dx, dy, θ, bx, by까지 특정하면 좋지만, 그 필요가 없다면, 최적의 변환 행렬(H)의 특정으로서, 인식 처리를 종료하여도 좋다.
변환 행렬(H)이 특정될 수 있으면, 이것을 이용하여 처리대상 화상을 모델 화상과 같은 상태로 변환하여, 필요한 계측이나 검사를 행할 수 있다. 또한 변환 행렬에 의해, 미리 정한 기준점에 대응하는 점을 특정하고, 그 점을 기준으로, 계 측 대상의 부위를 특정할 수도 있다.
이하, 상기한 인식 처리 방법을 실시할 때의 제어부(10)에 의한 처리를 상세히 설명한다.
우선, 도 4는, 본처리에 앞서서, 모델 삼각형을 등록할 때의 처리의 흐름이다. 이 처리는, 특징점의 조합의 추출 조건이 되는 삼각형의 상한치(dH) 및 하한치(dL)가 유저에 의해 입력되고, 대상물의 모델이 카메라(1)의 시야 내에 반입된 것에 따라 시작된다.
최초의 스텝 101(이하, 각 스텝을 「ST」로 약기한다.)에서는, 반입된 모델을 촬상한다. ST102에서는, 에지 추출부(4)에 의해, 상기한 촬상에 의해 생성된 모델 화상으로부터 특징점(에지 구성점)을 추출한다.
이하, 추출된 특징점의 좌표를 이용하여, 모델 삼각형을 설정, 등록하는 처리를 실행한다.
우선, ST103에서는, 모델 삼각형을 특정하기 위한 카운터(i)에, 초기치인 0을 세트한다. 다음의 ST104에서는, 추출된 특징점중에서 임의의 3점(A, B, C)을 샘플링 한다. ST105에서는, 샘플링한 각 점을 2개씩 조합시키고, 조합마다 거리(L1, L2, L3)를 산출한다.
ST106 내지 108에서는, 산출된 거리(L1, L2, L3)가, 각각 상한치(dH)와 하한치(dL)에 의해 규정되는 길이 범위에 들어가는지의 여부를 체크한다. 여기서, L1, L2, L3이 모두 상기한 길이 범위에 들어간다고 판단하면, ST109로 진행하여, A, B, C의 각 점을 i번째의 모델 삼각형(Ti)의 구성점으로 설정한다.
또한 ST110에서는, 상기한 모델 삼각형(Ti)을 등록한다. 또한, 여기서 등록되는 정보는, 예를 들면 각 점(A, B, C)의 좌표를 i의 현재치에 대응시킨 구성의 것이 된다.
이하, 특징점의 조(組)가 전부 샘플링될 때까지, ST112에서 i의 값을 갱신하면서, ST104 내지 110을 반복하여 실행한다. 단, 샘플링된 3점 사이의 거리(L1 내지 L3) 의 어느 하나라도, 상한치(dH)와 하한치(dL)에 의해 나타나는 길이 범위에 포함되지 않는 경우에는, 그 3점에 의한 삼각형은 모델 삼각형으로서는 등록되지 않는다.
특징점의 조(組)가 전부 샘플링 되면, ST111가 「YES」로 되고, 모델 등록 처리를 종료한다. 이 종료시점에서의 i의 값이 후기하는 imax가 된다.
도 4에 도시한 일련의 처리는, 모델의 특징점군에 포함되는 각 특징점을 n개(n=3)씩 조합시킨 각 조합중, 특징점 사이의 거리가 미리 정한 기준치를 충족시키는 것을 모델 조합으로서 설정하고, 설정된 모델 조합을 특정하기 위한 정보를 메모리에 등록하는 스텝에 상당한다.
도 5는, 본처리의 흐름을 도시한다. 또한, 이 도 5의 STI 내지 5는 1대상물에 대한 흐름이고, 대상물이 카메라(1)의 촬상 지역에 들어올 때마다 실행된다.
ST1에서는, 대상물을 촬상한다. 다음의 ST2에서는, 에지 추출부(4)에 의해, 상기한 촬상에 의해 생성된 처리대상 화상으로부터 특징점을 추출하는 처리가 행하 여진다.
ST3에서는, ST2의 처리에 의해 추출된 특징점군을 대상으로, 비교대상 삼각형을 추출한다. 이 추출 처리의 순서는, 도 4의 ST103 내지 112와 마찬가지이기 때문에, 상세한 설명은 생략하지만, 추출된 각 삼각형에는, 각각 식별 번호(j)가 부여된다. 또한 비교대상 삼각형을 특정하는 정보로서, 각 식별 번호(j)에 삼각형의 각 구성점의 좌표를 대응시킨 데이터가 설정되고, RAM(13)에 격납된다.
상기한 ST3은, 인식대상물의 특징점군에 포함되는 각 특징점을 n개(n=3)씩 조합시킨 각 조합중, 특징점 사이의 거리가 기준치를 충족시키는 것을, 비교대상 조합으로 설정하는 스텝에 상당한다.
ST4에서는, 등록되어 있는 모델 삼각형과 상기한 비교대상 삼각형을 차례로 대응시켜서, 최적의 변환 행렬(H)을 특정하는 처리를 실행한다. 이 특정에 의해, 대상물의 위치나 방향 등, 처리대상 화상중의 대상물의 상태가 인식되게 된다.
이 후는, ST5에서, 특정된 변환 행렬(H)을 이용하여, 처리대상 화상의 보정이나 계측 대상 부위의 특정 등의 처리를 행한 후, 본격적인 계측 처리나 검사를 실행한다.
상기 DST4는, 모델 조합과 비교대상 조합을 차례로 대응시켜서, 대응시킨 조합마다, 한쪽 조합의 각 특징점을 다른쪽 조합의 각 특징점으로 변환한 경우의 변환 파라미터를 구하고, 또한, 이 변환 파라미터에 관해, 모델의 특징점군과 인식대상물의 특징점군과의 관계에 대한 적합도를 구하는 스텝, 및 각 적합도에 의거하여, 모델의 특징점군과 인식대상물의 특징점군과의 대응 관계를 나타내는 변환 파 라미터를 특정하는 스텝을, 실행하는 것이다. 이하, 이들의 스텝에 관한 구체적인 처리의 흐름에 관해, 도 6을 이용하여 상세히 설명한다.
ST401, 402에서는, 초기 설정으로서, 적합도의 최대치(Cmax) 및 카운터(i)에, 각각 초기치인 0을 세트한다(ST401). 이 후는, i의 값에 의해 모델 삼각형(Ti)을 특정하면서, 삼각형(Ti)마다 하기한 처리를 실행한다.
ST403에서는, i번째의 모델 삼각형(Ti)의 등록 데이터로부터, 구성점(A, B, C)의 좌표를 판독한다. 다음의 ST404에서는, 비교대상 삼각형을 특정하기 위한 카운터(j)에 초기치인 0을 세트한다. ST405에서는, j번째의 비교대상 삼각형(Tj)의 각 구성점의 좌표를 판독하고, 이들의 점을 모델 삼각형(Ti)의 구성점(A, B, C)에 대응시킨다. 이 대응시킴에는 6가지의 양태가 있는데, ST405에서는, 이들중 하나를 실행한다. 또한 다음의 ST406에서는, 대응시킴의 실행 회수를 나타내는 카운터(p)에 초기치인 1을 세트한다.
ST407에서는, 대응시켜진 각 점의 좌표를 앞에서 나온 (1-1)식 및 (1-2)식에 적용시킴에 의해, 2가지의 3원연립 방정식을 설정하고, 이들을 이용하여, 모델 삼각형(Ti)을 비교대상 삼각형(Tj)으로 변환하는 경우의 변환 행렬(Hijp)을 산출한다.
이하의 ST408 내지 414는, 상기한 변환 행렬(Hijp)의 적합도(Cijp)를 산출하는 것이다. ST408에서는, 카운터(k) 및 변환 행렬(Hijp)의 적합도(Cijp)에 초기치인 0을 세트한다. 다음에, ST409에서는, 모델의 특징점군중의 k번째의 특징점(Ak)의 좌표를 판독한다. ST410에서는, 이 Ak의 좌표를 변환 행렬(Hijp)을 이용하여 변환하고, 변환 후의 점을 Bk로 한다.
ST411에서는, 처리대상의 특징점군중에 상기한 Bk에 대응하는 점이 있는지의 여부를 체크한다. 여기서는, 처리대상의 특징점군에 있어서, 대상물의 특징점군중의 Bk와 같은 좌표, 또는 해당 좌표로부터 소정의 거리 범위에 특징점이 있으면, 그 특징점을 Bk의 대응점인 것으로 한다. 이 경우에는 ST411가 「YES」가 되어 ST412로 진행하고, 적합도(Cijp)를, 현재치에 1을 가산한 값으로 갱신한다.
한편, 변환 후의 점(B)k에의 대응점이 발견되지 않은 경우에는, ST411은 「NO」가 되고, 적합도(Cijp)의 갱신 처리는 스킵된다.
이하, k의 값이 모델의 특징점의 총수(kmax)가 될 때까지 상기한 처리를 행함에 의해, 모델의 특징점의 변환 후의 좌표가 처리대상의 특징점군에 대응한 빈도가, 각 특징점군 사이의 관계에 대한 변환 행렬(Hijp)의 적합도(Cijp)로서 산출된다.
ST414가 「YES」가 되어 적합도(Cijp)의 값이 확정되면, 다음의 ST415에서는, 이 Cijp를 최대치(Cmax)와 비교한다. 여기서 Cijp가 Cmax보다 큰 경우에는, ST416으로 진행하여, Cijp에 의해 Cmax를 재기록한다. 또한 이 때의 변환 행렬(Hijp)을 최적의 변 환 행렬(H)로 한다.
이 후는, 삼각형(Ti, Tj) 사이의 구성점의 대응 관계를 변경함과 함께, 카운터(p)를 하나 큰 값으로 갱신하고(ST417 내지 419), 새롭게 대응시킨 조합에 관해, 변환 행렬(Hijp) 및 적합도(Cijp)를 구하는 처리를 실행한다(ST407 내지 414). 이하, 6가지의 조합마다 같은 처리를 실행하고, 모든 조합에 대한 처리가 종료되면(ST417가 「NO」인 경우), ST420에서 카운터(j)를 갱신함에 의해 비교대상 삼각형(Tj)을 변경하고, 그리고 나서 ST405로 되돌아온다. 또한 모든 비교대상 삼각형(Tj)에 대해, i번째의 모델 삼각형(Ti)에 대한 6가지의 변환 행렬(Hijp) 및 적합도(Cijp)를 구하는 처리가 실행되면, ST421가 「YES」가 되고, ST422에서 카운터(i)를 변경함에 의해 모델 삼각형을 변경하고, ST403으로 되돌아온다.
이와 같이 하여, 매시(每時)의 i, j의 조합에 관해, 삼각형(Ti와 Tj) 사이에서 6가지의 구성점의 대응시킴을 행하여, 대응시켜진 구성점의 조합마다, 변환 행렬(Hijp) 및 그 적합도(Cijp)를 산출한다. 또한, 적합도(Cijp)가 최대치(Cmax)를 상회한 경우에는, 그 적합도(Cijp)에 의해 최대치(Cmax)를 재기록함과 함께, 그 최대치(Cmax)를 얻은 때의 적합도(Hijp)에 의해 최적의 변환 행렬(H)을 재기록한다.
설정된 모든 모델 삼각형과 모든 비교대상 삼각형이, 차례로 대응시켜지고, 대응시킴마다 상기한 처리가 실행되면, ST423가 「YES」로 되고, 처리를 종료한다. 이 종료시점에서의 H가 최적의 변환 행렬, 즉 최대의 적합도를 얻은 때의 변환 파라미터를 나타내는 것이 된다.
도 6의 예에서는, 모델 삼각형과 비교대상 삼각형을 전원 시합 방식으로 대응시켜서, 대응하는 삼각형의 조마다, 변환 행렬(Hijp) 및 적합도(Cijp)를 산출하였지만, 이에 대신하여, 적합도의 최대치(Cmax)가 소정의 목표치에 달한 시점에서 ST403 내지 423의 대(大)루프의 처리를 중단하도록 하여도 좋다. 이와 같이 하면, 인식의 정밀도는 약간 떨어질 가능성이 있지만, 처리를 고속화할 수 있다. 또한, 적합도(Cijp)의 산출에서는, 모델의 특징점군의 모든 특징점을 대상으로 할 필요는 없고, 모델 삼각형의 정점(頂点)에 설정되어 있는 특징점의 좌표만을 이용하여 적합도(Cijp)를 구하여도 좋다. 또한, 적합도(Cijp)는 대응점의 수(數) 그 자체로 한하지 않고, 대응점의 수에 소정의 무게를 승산한 것이나, 처리대상의 특징점군 전체에 차지하는 대응점의 비율을 백분율로 나타낸 수치 등을, 적합도(Cijp)로 하여도 좋다.
도 7 및 도 8은, 변경 행렬을 특정하는 처리에 관한 다른 실시형태를 도시한다. 단, 이 처리 순서의 대부분은 도 6과 같기 때문에, 각 스텝에 도 6과 동일한 부호를 붙임에 의해, 설명을 생략하고, 변경한 처리만을 설명한다.
이 예에서는, 모델 삼각형(Ti)과 비교대상 삼각형(Tj)의 매시의 대응시킴에 있어서, 적합도(Cijp) 또는 상위도(Dijp)를 산출한다. 구체적으로는, ST410에서 k번째 의 모델 특징점(Ak)의 좌표를 변환 행렬(Hijp)에 의해 변환한 후, 처리대상의 특징점군중에 변환 후의 점(Bk)에 대응하는 특징점이 존재하는 경우(ST411가 「YES」인 경우)에는, 적합도(Cijp)에 1을 가산하고(ST412), 점(Bk)에 대응하는 특징점이 발견되지 않은 경우(ST411가 「NO」인 경우)에는 상위도(Dijp)에 1을 가산한다(ST424). 또한, 가산 후의 상위도(Dijp)가 소정의 임계치(Dmax)에 달한 경우(ST425가 「YES」인 경우)에는, 처리를 중단하고, 다음의 대응시킴에 관한 처리로 이행한다. 또한, ST408에서는, 카운터(k) 및 적합도(Cijp)와 함께 상위도(Dijp)에도 초기치 0을 세트한다.
상기한 처리에 의하면, 구성점의 대응시킴이 올바르지 않는 조합에 대해서는, 적합도의 연산을 최후까지 행하지 않아도 좋기 때문에, 그 만큼, 처리를 고속화할 수 있다.
다음에, 상기한 실시예에서는, 모델의 특징점군, 처리대상의 특징점군의 어느것에 대해서도, 각 특징점의 조합에 의해 설정되는 삼각형중, 각 변의 길이의 값이 각각 상한치(dH) 및 하한치(dL)에 의해 특정되는 기준의 수치 범위에 들어가는 삼각형을, 모델 삼각형, 비교대상 삼각형으로서 한정하였지만, 이것으로 한하지 않고, 변의 길이와 각도에 의거하여 삼각형의 조임을 행하여도 좋다. 예를 들면, 적어도 한 변의 길이가 기준의 수치 범위에 들어가고, 그 양단의 각도가 기준의 각도 범위에 들어가는 삼각형이나, 2변의 길이가 기준의 수치 범위에 들어가고, 이들의 변이 이루는 각도가 기준의 각도 범위에 들어가는 삼각형을, 모델 삼각형, 비교대상 삼각형으로 설정할 수 있다. 이 경우, 삼각형의 각도를 산출하는 대신에, 각 변에 대응하는 벡터의 내적을 구하고, 그 결과를, 마찬가지로 내적으로 환산된 임계치와 비교하도록 하면, 연산이 간단하게 되고, 충분한 처리 속도를 확보할 수 있다.
지금까지 설명한 바와 같이, 상기한 실시예에서는, 아핀 변환의 변환 파라미터를 구하는데는, 모델의 특징점군과 대상물의 특징점군 사이에서, 3조 이상의 특징점을 대응시킬 필요가 있다는 관점에서, 3개의 특징점에 의한 삼각형을 이용한 대조 처리에 의해 최적의 변환 행렬(H)을 특정하도록 하였다.
그러나, 화상과 같은 평면에 분포하는 특징점군을 처리 대상으로 하는 경우에는, 적어도 대응 관계에 있는 특징점의 조를 2조 구할 수 있으면, 이들의 특징점의 좌표로부터 나머지 1조의 대응점의 좌표를 추정하는 것이 가능하다. 예를 들면, 특징점군으로부터 추출한 2개의 특징점을, 이등변 삼각형의 2정점 또는 직각 삼각형의 사변(斜邊)을 구성하는 2정점에 상당한다고 생각하고, 이들의 점의 좌표로부터 나머지 1정점의 좌표를 산출할 수 있다.
따라서, 모델 및 처리대상의 특징점군으로부터 추출하는 특징점의 수를 2개로 하여, 이들의 점을 대응시킴과 함께, 별도로, 대응 관계에 있는 가상의 특징점의 좌표를 1조 산출하고, 이들 3조의 점에 의해 모델 삼각형 및 비교대상 삼각형을 설정하여, 변환 행렬(H)을 구하여도 좋다. 이 경우에도, 적합도의 산출 플로우는 도 6의 ST407 내지 414에 도시한 것과 마찬가지가 된다.
단, 특징점의 추출 수를 단순하게 3으로부터 2로 줄이면, 특징점의 조합의 대응시킴 수가 대폭적으로 증가하여, 연산 시간이 길어질 우려가 있다. 따라서, 이와 같은 처리는, 장척형상의 대상물로 한정하는 것이 바람직하다. 대상물이 장척형상인 경우에는, 그 길이에 따라 추출 대상의 2점 사이의 거리를 한정함에 의해, 특징점의 조합의 수를 조일 수 있고, 연산 시간을 단축할 수 있기 때문이다.
다음에, 2대의 카메라에 의한 스테레오 화상을 처리하여 3차원 계측을 실행하고, 산출된 공간 좌표를 이용하여 대상물의 인식을 행하는 경우에도, 공간 내에 분포하는 특징점군에 대해, 2차원의 경우와 같은 방법으로 대상물을 인식할 수 있다.
3차원 공간에서의 특징점의 관계를 특정하는데는, 동차좌표 변환의 변환 파라미터를 특정할 필요가 있다.
모델의 특징점군중의 1특징점의 좌표를 (mXi, mYi, mZi)로 하고, 처리대상의 특징점군중의 대응점의 좌표를 (tXi, tYi, tZi)로 하고, 모델에 대한 대상물의 x축방향에서의 회전 각도를 θ, y축방향에 있어서 회전 각도를 φ, z축방향에 있어서 회전 각도를 ψ라고 하면, 동차좌표 변환의 변환식은, 하기한 (2)식과 같이 된다.
상기한 (2)식에 의하면, 모델의 특징점군과 처리대상의 특징점군 사이에서 대응 관계에 있는 특징점의 조를 3조 특정할 수 있으면, 이들 점의 좌표를, (mXi, mYi, mZi) 및 (tXi, tYi, tZi)로 하여, 상기한 (2)식으로부터 3가지의 3원연립 방정식을 설정하고, 변환 행렬(H1)을 구할 수 있다. 따라서, 3차원 모델로부터 복수의 모델 삼각형을 추출하여 등록하여 두고, 대상물의 스테레오 화상에 대한 3차원 계측에 의해 복수의 특징점의 공간 좌표를 구하고, 이들중에서 비교대상 삼각형을 추출하고, 각 삼각형을 도 6과 같은 수순으로 대조함에 의해, 최적의 변환 행렬을 구할 수 있다.
도 9는, IC를 대상물로서, 3차원의 인식 처리를 행하는 예를 도시한다.
이 인식 처리에서는, 공간 내의 소정 위치를 원점(O)으로 하여 공간 좌표계(XYZ)를 설정하고, 3차원 모델(40) 및 인식 대상의 IC(41)에 관해, 각각 복수의 특징점의 공간 좌표를 산출하고, 그 산출 결과를 이용하여, 상기한 삼각형의 대조 처리를 행한다. 이 예에서도, 앞서의 도 3의 예와 마찬가지로, 대응 관계에 있는 여러가지의 삼각형중의 특정한 1조(삼각형(ABC와 A'B'C))를 나타내고 있다.
상기한 인식 처리에 의하면, 예를 들면 IC의 리드의 검사에 있어서, 인식 대상의 IC(41)의 선두의 리드의 선단부의 좌표(도 9의 점(B')의 좌표에 상당한다.)를 특정하고, 또한, 이 좌표를 기준으로 다른 리드의 선단부의 좌표를 특정하여, 각 선단부의 높이가 정돈되어 있는지의 여부를 판별할 수 있다.
또한, 로봇에 의한 조립 공정의 제어에 상기한 인식 처리를 적용하는 경우에, 예를 들면 점(A', C')의 좌표에 의거하여, 인식 대상 DIC(41)의 윗면 내의 중 앙부에 흡착 포인트를 설정하고, 이 설정 위치에 로봇 암의 흡착 노즐이 이동하도록 제어할 수 있다.
도 10 및 도 11은, 상기한 3차원 인식 처리가 적용된 부품 픽킹 시스템의 구체예를 도시한다.
이 시스템은, 지지대(60)에 흐트러지게 쌓인 부품(51)을 하나씩 쥐어 올리고 다른 장소에 운반, 정렬 배치하는 것을 목적으로 하는 것으로, 현장에는, 픽킹 작업을 담당하는 로봇(30)과 2대의 카메라(1A, 1B)가 배치된다. 또한, 이 시스템에는, 3차원 인식 처리용의 화상 처리 장치(20), PLC(21)(프로그래머블·로직·컨트롤러), 로봇 컨트롤러(22) 등이 포함된다.
로봇(30)은, 선단에 핸드부(31)가 마련된 다관절형의 암부(32)를 구비하고 있고, 로봇 컨트롤러(22)에 접속된다. 로봇 컨트롤러(22)는, PLC(21)로부터의 제어 신호에 따라, 암부(32)의 각 관절이나 핸드부(31)의 동작을 제어함에 의해, 핸드부(31)의 위치나 방향을 정하고, 부품(51)의 파지나 이동을 행하게 한다.
각 카메라(1A, 1B)는, 화상 처리 장치(20)에 접속된다. 화상 처리 장치(20)의 구성은, 도 1에 도시한 것과 거의 같기 때문에, 상세한 도시는 생략하지만, 화상 입력부(3), 에지 추출부(4), 화상 메모리(5)는 카메라(1A, 1B)마다 개별적으로 마련된다. 또한, 이 화상 처리 장치(20)는, PLC(21)로부터의 지령에 따라, 각 카메라(1A, 1B)에 동시에 트리거 신호를 출력하도록 설정되어 있다.
화상 처리 장치(20)에서는, 각 카메라(1A, 1B)로부터의 화상을 이용한 3차원 인식 처리를 행하여, 흐트러지게 쌓인 부품중의 하나를 인식하고, 이 부품의 위치 를 나타내는 3차원 좌표나 자세를 나타내는 각도 데이터를 출력한다. PLC(21)는, 화상 처리 장치(20)로부터 출력된 데이터를 이용하여 로봇(30)의 핸드부(31)의 위치나 자세를 나타내는 데이터를 산출하는 연산을 실행하고, 연산에서 얻은 데이터를 로봇 컨트롤러(22)에 공급한다. 로봇 컨트롤러(22)에서는, PLC(21)로부터 공급된 데이터에 의거하여, 로봇의 암부(32)나 핸드부(31)의 동작량을 결정하고, 그 결과에 의거하여 각 부분(31, 32)을 제어한다. 이로서, 화상 처리 장치(20)에 의해 인식된 부품을 쥐어 올려서, 소정의 장소에 반송하는 것이 가능해진다.
이 실시예에서도, 미리 인식 대상의 부품(51)의 3차원 모델로부터 소정 수의 특징점을 추출하고, 이들에 의해 모델 삼각형을 설정하고, 화상 처리 장치(20)에 등록하도록 하고 있다. 또한 픽킹 처리에서는, 각 카메라(1A, 1B)에 의해 촬상된 화상을 이용하여 복수의 특징점의 3차원 좌표를 구한 후에, 이들의 특징점에 의해 설정한 비교대상 삼각형과 모델 삼각형을 대조함에 의해, 모델의 특징점군과 처리대상의 특징점군과의 관계를 나타내는데 최적의 변환 행렬을 특정한다. 또한, 특정한 변환 행렬에 의거하여, 픽킹 대상의 부품의 위치나 자세를 나타내는 데이터를 산출한다.
도 12는, 특징점의 구체예를, 대응 관계에 있는 삼각형중의 특정한 1조(삼각형(ABC와 A'B'C))와 함께 도시한다.
이 실시예에서는, 인식 대상의 부품(51)의 3차원 모델(50)이 공간 좌표계(XYZ)에 소정의 자세로 배치되어 있을 때의 각 모서리부의 정점의 좌표를 특징점으로 하고, 이들의 특징점에 의한 삼각형중, 각 변의 길이가 소정의 수치 범위(제 1 실시예와 마찬가지로 유저에 의해 입력된다.)에 포함되는 것을 모델 삼각형으로서 등록한다. 한편, 인식 대상의 부품(51)에 대해서는, 카메라(1A, 1B)로부터의 화상을 에지 화상으로 변환한 후에, 각 에지 화상으로부터 모서리부의 정점에 상당하는 에지 구성점을 특정하고, 이들의 에지 구성점에 대해 구한 3차원 좌표에 의해 비교대상 삼각형을 설정한다. 또한, 비교대상 삼각형에 대해서도, 각 변의 길이가 모델 삼각형과 동일한 수치 범위에 포함되는 것으로 한정한다.
또한, 모서리부의 정점을 특정하는데는, 예를 들면, 에지 화상중의 각 에지 구성점이 나타내는 윤곽선을 직선이나 곡선 등의 세그먼트로 분할하고, 각 세그먼트의 교점을 구하면 좋다. 또한 도 12의 예와 같이 인식대상물의 윤곽선이 직선형상이 되는 경우에는, 각 에지 구성점에 대해, 각각 농도 구배 방향으로 직교하는 방향에 따라 가상의 직선을 설정하고, 이들의 직선을 방향이 근사(近似)하는 그룹마다 통합한 후, 이들의 직선의 교점을 특징점으로서 구하여도 좋다.
단, 특징점은 에지의 교점으로 한정되는 것은 아니다. 예를 들면, 곡선형상의 윤곽 형상을 갖는 대상물이라면, 곡선형상의 세그먼트를 추출하고, 곡률의 변화량에 의거하여, 구배가 완만한 부위로부터 가파른 부위로 변화하는 점 등을, 특징점으로서 추출하여도 좋다.
3차원 모델측의 특징점도, 실물 부품(51)의 모델을 이용하여 상기한 바와 마찬가지의 3차원 계측 처리를 실행함에 의해 구할 수 있지만, 부품(51)의 CAD 데이터가 있는 경우에는, 그 CAD 데이터가 나타내는 3차원의 윤곽선으로부터 마찬가지의 특징점을 추출하여도 좋다.
이 실시예에서는, 복수의 인식대상물을 촬상하기 위해, 각 카메라(1A, 1B)의 화상으로부터는, 하나의 대상물만을 처리 대상으로 하는 경우보다도 많은 에지 구성점이 추출되지만, 대상물의 특징적인 윤곽 형상의 구성점으로 특징점을 조임에 의해, 연산의 부담을 줄일 수 있다. 또한, 모델 삼각형이나 비교대상 삼각형의 설정에서도, 대상물의 형상에 따라 삼각형의 길이나 각도 등에 조건을 마련함에 의해, 삼각형의 수를 조여서 정밀도가 좋은 인식 처리를 행할 수 있다. 단, 특징점의 수를 줄이면, 삼각형의 설정에 관한 조건을 정하는 것이 어려워지기 때문에, 노하우가 없는 유저가 처리를 행하는 경우나, 인식대상물이 빈번하게 변하는 경우에는, 특징점의 조임을 행하지 않고, 모든 에지 구성점을 특징점으로 하여도 좋다.
이하, 로봇(30)의 동작 제어를 위해 화상 처리 장치(20)에서 실행되는 처리의 흐름에 관해, 도 13을 이용하여 설명한다.
우선 ST501에서는, PLC(21)로부터의 지령을 받아서 각 카메라(1A, 1B)에 트리거 신호를 출력하고, 촬상을 행하게 한다. 다음의 ST502에서는, 각 카메라(1A, 1B)로부터 입력된 화상을 대상으로 특징점의 추출을 행한다. 여기서는, 각 입력 화상을 각각의 에지 추출부(4)에 의해 에지 화상으로 변환한 후, 상기한 모서리부의 정점 등의 에지 구성점을 복수 특정하고, 이들을 특징점으로서 설정하여도 좋다. 또는 모든 에지 구성점을 특징점으로 하여도 좋다.
여기서 특징점이 추출되면, ST503가 「YES」가 되고, ST504에서, 추출된 특징점에 관해 3차원 좌표를 산출한다. 구체적으로는, 각 특징점을 화상 사이에서 대응시킨 후, 대응시켜진 점의 조마다, 각 점의 좌표를 삼각측량의 원리에 의한 수식 에 적용시킨 연산을 실행함에 의해, 이들의 점에 대응하는 3차원 좌표를 산출한다.
이 후는, ST505에서, 산출된 각 3차원 좌표가 나타내는 특징점군을 대상으로, 비교대상 삼각형을 추출하는 처리를 실행한다. 또한, ST506에서, 비교대상 삼각형과 미리 등록된 모델 삼각형을 차례로 대응시키고, 대응시킨 조합마다, 변환 행렬이나 그 행렬의 적합도를 산출하는 처리를 실행함에 의해, 처리대상의 특징점군에 최적의 변환 행렬(H1)(적합도가 최대가 된 때의 변환 행렬)을 특정한다. 이 ST505의 상세는, 동차좌표(同次座標) 변환의 연산식((2)식)을 실행하는 점을 제외하면, 앞서의 도 6 또는 도 7, 8에 도시한 처리와 거의 같은 흐름이 된다.
최적의 변환 행렬(H1)이 특정되면, ST507에서는, 3차원 모델(50)에 대해 미리 설정하여 둔 대표점을 변환 행렬(H1)에 의해 변환하고, 그 변환 후의 좌표를, 픽업 대상의 부품의 위치 데이터로 한다. 또한, ST508에서는, 특정한 변환 행렬(H1)의 각 성분을 이용하여, 동차좌표 변환의 파라미터(θ, φ, ψ)를 산출하고, 이들의 조합을 픽업 대상의 부품의 자세 데이터로 한다.
3차원 모델(50)의 대표점에는, 특징점중의 하나(예를 들면 도 12의 점(A))를 설정하여도 좋지만, 이것으로 한하지 않고, 에지 구성점 이외의 점(예를 들면 도 12의 삼각형(ABC)의 중심(重心))을 대표점으로 하여도 좋다.
ST509에서는, ST507에서 산출한 위치 데이터 및 ST508에서 산출한 각 각도(θ, φ, ψ)에 의한 자세 데이터를, PLC(21)에 출력한다. 이 출력을 받은 PLC(21)에서는, 로봇 제어용의 데이터를 산출하고, 이것을 로봇 컨트롤러(22)에 출력한다. 로봇 컨트롤러(22)에서는, PLC(21)로부터 공급된 데이터에 의거하여 로봇(30)의 동 작을 제어함에 의해, 인식된 픽업 대상의 부품을 로봇(30)에 파지시키고, 촬상 대상 영역 외로 반송시킨다. 이 반송 처리가 완료되고, 그 취지가 로봇 컨트롤러(22)로부터 PLC(21)에 통지되면, PLC(21)는 화상 처리 장치(20)에, 다음 촬상용의 트리거 신호의 출력을 지시한다.
화상 처리 장치(20)에서는, 데이터의 출력이 종료되면, 재차 ST501로 되돌아와, PLC(21)로부터의 지시에 따라, 상기한 부품 반송 후의 촬상 대상 영역을 촬상한다. 또한, ST502 이하의 처리를 실행함에 의해, 다음 픽킹 대상의 부품의 위치 및 회전 각도를 구하여, PLC(21)에 출력한다.
이하도 마찬가지로, ST501 내지 509를 반복함에 의해, 흐트러지게 쌓여 있던 부품이 하나씩 인식되고, 그 인식 결과에 의거한 제어를 받은 로봇(30)에 의해 반송된다. 이 결과, 모든 부품이 반송되고, 촬상에 의해 얻은 화상에 특징점이 포함되지 않는 상태가 되면, ST503가 「NO」가 되고, 처리를 종료한다.
또한, 인식 대상의 부품(51)의 흐트러지게 쌓인 위치가 카메라(1A, 1B)의 시야로부터 빗나가는 등으로, 부품(51)의 전체상(全體像)이 생성되지 않은 경우에는, 최대의 적합도라도 매우 낮은 값이 될 가능성이 있다. 이와 같은 경우에 대응하기 위해, 최대의 적합도가 소정의 기준치를 하회한 경우에는, 부품(51)의 인식 처리를 중단하고 에러 처리를 실행하는 것이 바람직하다. 이 점에 관해서는, 앞서의 2차원의 인식 처리에서도 마찬가지이다.
상기한 설명에서는, ST506에서, 최적의 변환 행렬(H1)로서, 적합도가 최대로 된 때의 변환 행렬을 특정한다고 하였다. 변환 행렬의 적합도가 커질수록, 그 변환 행렬에 의해 모델의 특징점군을 변환한 때의 변환 후의 각 점이 처리대상의 특징점군에 대응하는 빈도도 증가하기 때문에, 적합도가 최대로 된 때의 변환 행렬을 선택함에 의해, 흐트러지게 쌓인 복수의 부품(51)중에서 모델의 특징점군에 대응하는 점이 가장 많은 부품(51)을 인식할 수 있다. 환언하면, 노출의 정도가 가장 큰 부품(51), 또한 환언하면, 로봇(30)에 있어서 가장 쥐기 쉬운 부품(51)을 인식할 수 있다.
단, 최적의 변환 행렬(H1)로서 특정할 수 있는 것은 상기한 것으로 한정되는 것이 아니다. 예를 들면, 적합도가 소정의 기준치를 초과한 변환 행렬을, 전부 변환 행렬(H1)의 후보로서 픽업하고, 이들의 변환 행렬에 의해 3차원 모델의 대표점의 좌표를 변환하고, 변환 후의 Z좌표가 가장 높아진 때의 변환 행렬을 최적의 변환 행렬(H1)로 하여도 좋다. 이 경우에는, 흐트러지게 쌓인 부품(51)중의 가장 위에 있는 부품을 인식할 수 있다.
또한, 상기한 시스템에서는, 대상물 부품(51))을 하나 특정할 필요성 때문에 각 조합마다 구한 변환 행렬중에서 최적의 것을 하나 특정하였지만, 이것으로 한하지 않고, 용도에 따라서는, 적합도가 기준치를 초과한 변환 행렬을 복수 특정하고, 특정된 1변환 행렬에 대해 대상물을 하나 인식하여도 좋다. 이와 같이 하면, 복수의 로봇(30)에 작업을 행하게 한 경우에도, 각 로봇(30)에 파지시켜야 할 부품(51)을, 각각 개별적으로 인식하는 것이 가능해진다.
또한 3차원의 인식 처리의 적용 범위는, 상기와 같은 스테레오 화상을 이용한 계측 처리 결과로 한하는 것이 아니다. 예를 들면, 소정의 범위에 변위 센서를 주사하고, 대상물까지의 거리를 복수 지점에서 계측하는 방법에 의한 3차원 계측의 결과에 적용할 수도 있다.
상기한 2차원, 3차원의 화상 처리에 의한 실시예에서는, 모델 및 처리 대상의 특징점을 에지 구성점으로 하고 있지만, 특징점은 이것으로 제한하는 것이 아니다. 예를 들면, 특정한 색채를 갖는 영역을 처리 대상으로 하는 경우에는, 그 색채가 나타내고 있는 화소를 특징점으로서 추출하여도 좋다.