이 블로그 게시물은 더 이상 SAS가 아닌 블로거가 작성했습니다.
나는 고위직의 노스 캐롤라이나 과학 및 수학 학교 . 올 여름 SAS의 기술 여름 학생으로 일했습니다.
동안 JMP 8 이미지 조작 지원 기능이 없으므로 사용자가 JSL에서 호출 할 수있는 사용자 정의 DLL을 작성할 수 있습니다. 그래서 오픈 소스 이미지 라이브러리 인 ImageMagick의 일부 기능을 JSL에서 호출 할 수있는 DLL을 만들었습니다.
이 DLL을 사용하여 노스 캐롤라이나 교통국 웹캠에서 자동차 사진을 집계했습니다. 다음은 롤리 지역의 고속도로 40 번 출구 289 번 출구 근처의 이미지입니다.

불행히도, 도로의 더 먼 부분은 모두가 흐려지기 때문에보기가 어렵습니다. 그래서 저는 그 부분을 보지 않았습니다. 나는 그것을 잘라 냈다.
이후의 계산을 쉽게하기 위해 이미지를 회색조로 변환 했으므로 각 픽셀에 3 개의 색상 채널이 아닌 단일 강도로 작업해야했습니다.
이미지는 다음과 같이 보입니다.

차를 세려면, 사진의 어떤 부분이 차인지 알아야했습니다. 웹캠은 매 3 분마다 업데이트되므로 각 사진을 비교할 사진이 많이있었습니다. 그래서 각각의 사진을 분석하기 전에 나는 10 장의 사진과 그 뒤의 10 장의 사진을보고 20 장의 사진을 평균했습니다. 당신이 볼 수 있듯이 그 결과는 자동차가없는 도로의 그림에 매우 가깝습니다.

이 그림은 내가 본 이미지의 어떤 부분이 자동차가 아니라고 말했습니다. 내가 분석하고 있던 이미지에서 그것을 빼서, 나는 자동차가 어떤 부분인지에 대한 멋진 그림을 얻었습니다.

이 시점에서, 심지어 스크립트에서 그림의 어느 부분이 자동차인지 쉽게 알 수 있습니다. 회색 영역은 자동차입니다. 어두운 영역은 그렇지 않습니다. 진한 회색의 일부 지역이 있었는데, 자동차인지 아닌지 분명하지 않았습니다. 나는 그 (것)들을 위해 잘 작동하는 것처럼 보인 무슨이 색깔 강렬이 60 이하인 지역을 배경으로 고려하고 강렬이 차이기 위하여 60 이상인 지역을 고려하기위한 것이었다. 이 필터가 적용되면 그림은 다음과 같이 보입니다.

나는 여러 차를 구성한 픽셀의 (x, y) 좌표를 모았다. 한 자동차의 픽셀이 다른 자동차의 픽셀보다 서로 가깝기 때문에 JMP의 클러스터 분석 도구를 사용하여 이러한 점을 클러스터로 나누었습니다. 이상적으로, 각 클러스터는 하나의 자동차를 나타냅니다. 다음은 각 클러스터마다 고유 한 색상이 지정된 동일한 그림입니다.

보시다시피,이 그림에서 꽤 잘한 것 같습니다. 그러나 JMP의 클러스터 분석 도구는 분석을 수행하기 전에 많은 클러스터가 필요하기 때문에 자동화 된 계산을위한 최고의 도구는 아닙니다. 그래서 많은 개별 픽셀이 자체 클러스터로 보이는 이유입니다. 사진에 자동차가 8 대 밖에없는 경우 JMP가 기본 클러스터 수 (20)로 분할합니다.
JMP의 클러스터 분석 도구는이 작업에 가장 적합한 도구가 아니기 때문에 다른 도구를 사용하게되었습니다. 먼 차가 더 작아 보인다는 사실을 설명하면 대부분의 차는 비슷한 크기입니다. 따라서 흑백 단계에서 카메라의 차량 거리를 고려하여 흰색 픽셀을 계산하여 그림의 자동차 수를 근사치로 계산할 수 있습니다.
이 무렵 나는 웹캠을 전환하기로 결정했다. 이 문제는 문제가 많이 발생하여 평균화 작업을 방해하는 것이 었습니다. 다음은 4 개의 연속 사진입니다.




이 4 개는 대부분보다 극단적이지만 아이디어를 얻을 수 있습니다. 어떤 사람들은 보지 않고 다른 웹캠을 발견했습니다. 여기 사진이 있습니다.

자동차의 크기는 예측 가능한 선형 방식으로 y 좌표에 따라 다르기 때문에 비교적 간단한 계산을 사용하여 조정할 수 있습니다. 불행히도이 작업을 수행하려면 4 포인트 (도로 양쪽에 2 개씩)를 식별해야하며이 4 포인트를 스크립트에 전달하는 것은 다소 까다 롭습니다.
더 쉬운 방법이 있습니다. JMP에는 모델링 플랫폼이 있습니다. 일부 사진에서 자동차를 수작업으로 계산하고 JMP에 그 데이터를 제공하면 다른 픽셀의 위치와 분포에 따라 다른 사진의 자동차 수를 예측할 수있는 모델을 만들 수 있습니다.
위 이미지의 아래 (자른) 복사본에 대략 표시된 것처럼 각 이미지를 5 픽셀 높이의 가로 줄무늬로 나눴습니다.

평균 영상을 빼고 각 픽셀의 각 스트라이프에서 60보다 큰 강도의 픽셀 수를 계산했습니다. 나는 그 당시의 모델에 적합했을 것이다. 그러나 각 스트라이프의 픽셀 수를 기준으로 자동차 수를 설명하려고 했으므로 대략 30 개의 설명 변수가있었습니다 (각 스트라이프마다 하나씩). 나는 제비 이미지를 사용하여 모델을 만들었습니다. 모델을 많이 사용하지 않아도됩니다.
이 문제를 해결하기 위해 필자는 주요 구성 요소를 추출했습니다. 주요 구성 요소는 첫 번째 주성분이 데이터의 가장 큰 변화를 설명하고 30 번째가 가장 작은 변화를 설명하는 방식으로 계산 된 원래의 30 가지 설명 변수의 선형 조합입니다. 상위 11 개 주요 구성 요소가 변동의 95 % 이상을 설명했습니다. 따라서 원시 데이터 대신에 주성분을 기반으로 모델링함으로써, 정보의 95 %를 유지하면서 설명 변수의 수를 대략 3 분의 1로 줄였습니다.
저는 무작위로 선택된 120 장의 사진 중에서 자동차를 수작업으로 계산했습니다 (저는 600 개가 넘었으므로이 중 일부만이었습니다). 그리고 그 수를 픽셀 수와 함께 JMP의 Fit Model 플랫폼에 보냈습니다. JMP는 내가 계산 한 차량 수의 테이블을 시간에 따라 만드는 데 사용한 모델을 만들었습니다. 나는 목요일 오후와 금요일에 그 데이터를 그래프로 나타냈다. 스플라인이 맞으면 그래프는 다음과 같습니다.

이 그래프는 예상 트래픽 패턴을 실제로 보여줍니다. 아침 및 저녁 러시 아워와 점심 시간에는 교통량이 크게 증가합니다.
Douglas M Okamoto (지식에 대한 정보에 대한 데이터) 쓴 :
진취적인 SAS 기술 여름 학생이 JMP 플랫폼을 사용하여 노스 캐롤라이나 주 롤리 (Raleigh) 주변 차량 교통량을 식별하는 데이터 연관 추적 시스템을 개발 한 것을 축하합니다.
3 가지 질문이 있습니다.
Q1. 15 분마다 촬영 한 사진을 체계적으로 샘플링하는 것은 어떻습니까? 3 분마다 업데이트되는 사진으로 웹캠 비디오 감시 30 시간에 600 장의 사진이 모두 제공됩니다. 120 장의 사진을 체계적으로 샘플링 한 것이 동일한 크기의 무작위 샘플보다 더 대표적이어야합니다.
Q2. 11 개의 주요 구성 요소가 결합 된 이상한 설명 변수 30 개 중 하나가 강조 되었습니까? 자른 세그먼트 사진에서 전경 세그먼트의 차량은 배경 세그먼트의 차량보다 배경 화 된 세그먼트의 차량이 더 많습니다.
Q3. Morrisville에있는 Davis Family Bar-BQ에서 점심 식사를 한 후 다시 서둘러 서서 일하는 사람들 때문에 오후 1 시경에 16 대의 자동차 특이점이 있습니까?
참고
미 교통부, 교통 탐지기 핸드북 : 제 3 판, 제 1 권, 발행 번호 FHWA-HRT-06-108 (2006 년 10 월)
â ¢ http://www.tfhrc.gov/its/pubs/06108/06108.pdf
아키 쓴 :
안녕, 그렉!
꽤 흥미 롭군요! 멋진 보고서.
끝에 줄거리를 보면서, 나는 당신이 혼잡 시간대에 너무 자주 세면, 같은 차가 몇 분 후에 약간의 거리에서 여전히 그림 속에있게 될 것이라고 생각했다. 따라서 데이터를 "합산"하는 방법에 대해 신중을 기해야합니다 (이 보고서에서는 수행하지 않음). 이전 사진에서 같은 차가 여전히 멀리 떨어져 있다는 것을 인식하면 꽤 어려운 문제입니다. 그들은 차선을 변경할 수도 있습니다. 그래서 당신은 단지 그들 만의 클러스터를 인식 할 수없고, 규모를 재조정 할 수 없습니다 ...
글쎄,하지만 아마 그 문제는 단지 자동으로 많은 양의 데이터를 수집 할 때 스스로 해결할 수 있습니다. 따라서 실제 데이터를 수집하는 데 실제 문제가 없을 수도 있습니다 ....
이 기술을 실제로 사용할 수있는 용도가 무엇인지 말하면 보고서를 더욱 재미있게 만들 수 있습니다. (자동 트래픽 흐름보고, 용량 분석 또는 기타 ...)
어쨌든, 관심있는 보고서를 읽었습니다. 고맙습니다!
아키.
리앙 리엠 쓴 :
흥미 롭 군. 밤 시간이고 가로등이 켜져 있다면 여전히 작동합니다.
> 실용적인 기술 사용
어쩌면 가로등을 어둡게하는 데 사용할 수 있습니다. 낮은 교통 강도의 빛 수준이 낮을 수 있지만 트래픽 강도가 증가하면 빛의 수준도 증가시킬 수 있습니다.
일부 거리에서는 자동차 페리가 도착하거나 하키 게임이 끝나는 것과 같은 일이 발생하는 짧은 기간을 제외하고는 자동차가 전혀 없습니다. 우리가 차의 수가 임계 값을 초과하는 것을 감지 할 수 있다면 그러한 정보는 서버에 전송 될 수 있으며, 그런 다음 서버는 거리에 따라 다른 디밍 컨트롤러에 명령을 전송합니다.
문안 인사
리앙