📌다시 되돌아보자
CrowdGuard Alert, 군중 안전을 위한 경고 시스템
프로젝트 소개
개발 동기 :
2022년 이태원 참사와 2023년 7월 신림역 흉기 난동 사건은 공공 안전에 큰 위협이 되고 있다. 이러한 사고를 예방하기 위해, 인구 밀집 지역에서의 실시간 모니터링과 위협 탐지 시스템의 필요성이 커졌다. "CrowdGuard Alert" 프로젝트는 YOLO(You Only Look Once) 알고리즘을 활용하여 군중 밀집도를 실시간으로 분석하고 칼과 같은 위험 물체를 감지하여 경고함으로써, 사고를 방지하고자 합니다.
프로젝트 특장점 :
- 실시간 밀집도 분석: YOLO 알고리즘을 활용하여 다중 CCTV 카메라에서 실시간으로 사람들을 인식하고, 특정 구역의 밀집도를 정확하게 계산한다.
- 자동 경고 시스템: 밀집도가 임계값을 초과할 경우 자동으로 경고 방송을 송출하거나 모바일 알림을 발송하여 사람들에게 주의를 환기시킨다.
- 위협 물체 감지: YOLO를 이용해 칼과 같은 위험 물체를 실시간으로 감지하고, 이를 손에 들고 있는 사람을 인식하여 즉각적인 경고를 발송한다.
- AI 기반 군중 행동 분석: 군중의 움직임 패턴을 분석하여 잠재적인 위험 상황을 예측하고 경고한다.
- 비상 대피 경로 안내: 밀집도를 기반으로 비상 상황 발생 시 가장 빠르고 안전한 대피 경로를 실시간으로 안내한다.
기대효과 :
- 군중 밀집 사고와 묻지마 칼부림 사건을 사전에 방지하여 인명 피해를 줄일 수 있다. 또, 실시간 모니터링과 경고를 통해 관리자는 신속하게 상황을 파악하고 대응할 수 있다.
- 매년 크게 열리는 축제, 공연, 스포츠 이벤트 등 대규모 인파가 모이는 공공장소의 안전성을 향상시킬 수 있다. 다양한 인구 밀집 지역에 적용 가능하며, 지역 특성에 맞게 커스터마이즈될 수 있다.
"CrowdGuard Alert" 프로젝트는 기술을 통해 인명 사고와 범죄를 예방하고, 더 안전한 사회를 만드는 데 기여할 것이다.
📌코드리뷰
오늘 18회(3회,10회,5회 에폭을 나눠서 훈련을 진행함)훈련을 마친 내 yolovs모델을 python-cv를 이용해서 결과를 내봤다. 내가 정말 간과한 사실이 크게 있다.
1. roboflow에서 가져온 데이터에 클래스는 두개이다.
n = 2 (head, person) train, val, test에 맞는 annotation 파일들이 모여있어 roboflow 쉽게 가져와 가공하지 않고 썻다는 점이다. 이점은... 정말 크게 잘못되었다. 훈련을 잘못한건지 객체(사람)를 인식하게 되면 head부분과 peroson부분에 경계가 애매해 한사람이 3명으로 인식하거나 head부분에 약간의 오차가 있다면 인식을 하지 않는 경우가 발생했다. ->> 데이터셋을 다른것을 갖고와 여러가지를 훈련시켜 종합해서 에측시키는 방법을 사용하려고 한다.
- yolovn 버전을 썻다는 점과 사진크기와 증강 코드를 구현하지 않아 거리에 객체를 인식할때 거리에 감각이 없다는 것이다. main함수에서 거리에 대한 값을 입력하고 돌려봐도 원래의 데이터가 부족하다는 점과 충분한 훈련이 되지 못해 불안정한 상태가 발생했다. 실제csv파일을 첨부한다.
train 1 : 
train 2 : 
train 3 : 
- 내 로컬 gpu에서 돌리고 싶었지만 cuda사용법이 많이 복잡했다. (참고)나는 원도우 환경을 쓰고 있어서 tenserflow 버전을 확인해서 맞는 버전을 설치 하려고 했지만 원도우에서 지원이 끊겨 리눅스 or 맥에서 돌려야 하는 환경이였다. (버전을 낮추는 방법도 있지만 약 4년전꺼라 꺼려짐, wsl_사용해 리눅스에서 돌려볼려 햇지만 컴퓨터 바이이오스에서 가상환경 버튼이 보이지 않아 실패) 그래서 나는 구글 Colab환경에서 돌렸다. 구글 Colab환경에서는 gpu를 대여해주는데 약 2시간~3시간씩 할당량이 있어 많은 에폭을 돌리지 못해 위에 훈련 결과처럼 훈련했던 모델을 로드해서 돌리는 방법을 사용했었다.. 너무 비효율
-> 이제는 학과 서버를 이용해 vscode에 ssh를 연결해 사용하려고 한다.
천천히 해봅세..
Github/Code/OPENSOFTWARE_1번째.ipynb!