티스토리 뷰

2021.5.24. 23:27

 

안녕하세요

프로그래밍을 배우는 빛나는 샤트입니다.

 

AIFFEL 대전 1기 22주차

에너지를 회복하고 가즈아

*AIFFEL 대전 1기 22주차 기간=2021.05.24~2021.05.28

 

AIFFEL 대전 1기 22주차

 

1️⃣[Day_99][210524]

🎯풀잎스쿨;수학

극댓값과 극솟값, 안장점

 

 

🎯해커톤3

우리 팀은 장비를 맡겨야 하기에 진흥원(원래 오프라인 교육 장소)에서 만나서 진행했다.

오늘은 아주 중요한 이야기를 하는 날!

역할 분담 그리고 업무 확립!

 

지금까지는 Tracking관련 학습 위주로 했다면 이제는 각자 잘하고 하고 싶은 분야를 정해서 하기로 했다.

그래서 필요한 작업이 바로! 업무 확립!

우리가 하고자하는 목표를 제대로 설정했다.

 

앞으로 월화목금 오프라인 모임을 할 예정이고 화금은 필수, 월목은 선택으로 했다.(나는 다 나가기로 했다.)

 

 

2️⃣[Day_100][210525]

🎯해커톤3

오늘은 하루 종일 해커톤3 진행~!

어제부터 각자 할 일을 적고 본인이 업무 일정 관리를 하도록 유도했다.

 

오늘은 YOLOv4 tiny에 대해 탐색해봤고 (필수는 아닐 수도 있지만) custom 학습하는 방법을 탐색했다.

하지만 CUDA 버전 문제로 시간을 많이 허버했다.

 

*오늘의 키워드

1. 중간 발표에 보여주기 위한 로봇 기본 구동 동영상 촬영.

2. 카메라 + 로봇의 결합을 위한 영상 각도 확인 --> 높이보다 각도를 조절하는 것이 더 주요함.

3. ROS보다 일단 하드웨어를 빨리 고정하는 것이 급선무.

4. 목요일 오전까지 Deep SORT 코드 파헤치기 완료, 오후까지 추적 시스템 코드 작성

 

온라인으로만 간헐적으로만 하다가 진흥원에서 만나서 진행하니 효율이 잘 오른다.

물론 우리 팀만 여길 사용하기 때문에 다른 팀한테는 미안하다...

뭔가 특권을 누리는 느낌이긴 한데, 장비를 테스트하고 보관할 장소가 필요하기 때문에.

그래서 딱히 다른 팀들에게 자랑하거나 떠들고 다니지 않았다.

 

3️⃣[Day_101][210526]

🎯해커톤3

오전에는 해커톤3 진행!

일단 웹캠으로 찍은 간이 영상으로 detect가 잘 되고 track가 잘 되는지 test함.

사람 뒷모습 인식 test

DeepSORT(detector: YOLOv4 tiny, 사람만 인식)를 이용해 사람 하반신 뒷모습 track test

>> 일정 거리보다 작아지면 detect가 잘 되지 않았음. 그래도 인식+추적이 되는 모습 확인!

 

🎯풀잎스쿨;Coding Master

Dynamic Programing에 대해 나동빈님 강의 시청.

13:30 ~ 14:30 강의 시청과 토의.

그리고 Coding Master와 다른 이야기지만 Clean Data에 대한 설명을 들었다.

해커톤3에서 모델 선택/설계보다 데이터에 대해 좀 더 집중을 해보라는 말을 했다.

맞다...작년에도 느꼈던 것인데 데이터의 중요성!! 새로운 기능을 구현하려다보니 너무 모델링만 신경 쓴 느낌이다.

그렇다고...데이터셋 지금부터 구성하고 학습하기에는 너무 많이 온 느낌이 든다.

차라리 COCO dataset이 더 잘 정리가 되어 있지...

 

 

4️⃣[Day_102][210527]

🎯해커톤3

>> 오전: DeepSORT 코드 이해를 위해 다양한 test 실시함.

특히 cv2.waitKey에 관해 학습.

 

cv2.waitKey() 자체는 사람이 입력하는 키보드 값을 제어할 수 있게 해준다.

예를 들면 key = cv2.waitKey() 라면 `esc`키를 누르면 key는 27 이라는 값을 가지게 되며 이를 활용해 동영상 재생 등을 멈출 수 있다.

 

그리고 cv2.waitKey(0)과 같이 0을 넣게 되면 무한 대기가 된다. 실제로 test 결과 동영상이 멈춘 채로 display가 되었고, 아무 키보드 값을 입력하자 다음 프레임으로 넘어가는 것을 확인함. 1프레임 단위로 보고 싶을 때 유용할 듯.

 

만약 1을 넣게 된다면 1ms 대기 후 바로 다음 프레임을 보여주는 형식이다. 그래서 많은 동영상 재생 코드에서 cv2.waitKey(1)을 사용한다. 

 

또한 많이 사용하는 코드는 아래와 같다.

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

위 코드는 1ms간격으로 1프레임씩 동영상을 재생하고 키보드의 'q'가 입력되면 재생이 중단되는 형식이다.

실제로 동영상이 재생되는 중간에 'q'를 누르면 동영상 재생이 멈추고 창이 닫힌다.

 

*참고 링크: https://zzsza.github.io/data/2018/01/23/opencv-1/

*참고 링크: https://m.blog.naver.com/PostView.naver?blogId=chandong83&logNo=221613235354&proxyReferer=https:%2F%2Fwww.google.com%2F

*참고 링크: https://deep-learning-study.tistory.com/109

 


 

>> 오후: 진흥원에 모여 오프라인 모임 진행함.

1. Test 영상 촬영(총 9개)

 - 카메라 고정, 사람이 점점 멀어지는 동영상

 - 카메라 고정, 사람이 점점 가까워지는 동영상

 - 카메라 고정, 사람이 좌우로 움직이는 동영상

 - 카메라 고정, 1.5m에 사람이 가만히 서 있는 동영상

 - 카메라 고정, 2.0m에 사람이 가만히 서 있는 동영상

 - 카메라 고정, 2.5m에 사람이 가만히 서 있는 동영상

 - 카메라 고정, 3.0m에 사람이 가만히 서 있는 동영상

 - 카메라 움직임, 사람과의 거리 1.5 ~ 2.5m 유지하며 움직이는 동영상1

 - 카메라 움직임, 사람과의 거리 1.5 ~ 2.5m 유지하며 움직이는 동영상2

 

2. 중간 발표 자료 목차 및 컨텐츠 확정

 

3. 5인 프로젝트 모습 촬영

 

4. 촬영한 영상 DeepSORT 적용한 모습

멀어지는 사람 추적
일정 거리 사람 추적

 

5️⃣[Day_103][210518]

🎯해커톤3

오전: Test 방법 논의(FPS 측정, 거리에 따른 bbox 크기 측정)

10:30 중간발표 시작(첫 번째)

 

1. 목표

2. 일정 및 현황

3. 구동 데모

 

중간 발표는 크게 어렵지 않게 부담없이 진행.

어차피 최종 발표 때 어떤 것을 보여주는 지가 가장 중요하다고 생각.

위의 데모 영상을 첨부했었음.

 

그리고 첫 번째라서 그런건지 질문이 엄청 많았다. 10개 정도 받은듯?

 

오후 2:30까지 중간발표가 이어져서 오늘은 크게 일정을 소화하지 못했다.

다만 ROS를 이제 시작해야 한다고 느낌.

그리고 STARK논문을 다시 읽고 정리하고 마무리해야겠음.

 

 

📢22주차를 마무리하며

해커톤3 3주차 끝.

격동의 3주차를 보내고 나니 그래도 뭔가 보이는 느낌이다.

그럼에도 아직 보강할 내용이 많다.

하지만 일단 빨리 적용해보고 로봇을 움직이게 하는 것이 더 중요하다.

너무 이론만 붙잡기보다 적용해보고 수정하고 하는 과정이 매우 중요.

 

다음주는 ROS를 공부하고 실제로 통신을 실행해보자.

 

 

 

 

LIST
댓글