새로운 프로젝트를 시작하면서 가능한 빨리 업로드를 하려고 했지만... 수집한 데이터셋에서 제공되는 json을 coco dataset 형식에 맞추면서 코드 실수를 했었다. 원인을 못 찾고 있어서 오래 걸렸다...
1. 프로젝트 목표
- 프로젝트 목표
- 데이터셋의 전반적인 구성
2. 기대 효과
- 아동의 창의성 및 개성 이해 도구로 활용
- 미술 치료 접근성 향상 및 비용 절감
- 심리적 상태의 초기 파악 및 정서적 안정 지원
3. 요약
- 프로젝트 흐름도
- 결과
4. 분석 대상 확인
- 이미지 샘플 확인
5. 모델 훈련
- Faster RCNN
- 나무
- 집
- 종합
6. 결론
1. 프로젝트 목표
1. 프로젝트 목표
이 프로젝트의 목표는 아동이 그린 그림을 기반으로 간편한 미술심리 진단 도구를 제공하는 것이다. 아동의 그림 데이터셋을 활용하여 딥러닝 모델을 개발하고, 그림 속 객체를 분류한 뒤, 분류된 이미지를 기반으로 Chat GPT를 활용해 아이들의 심리 상태를 간단히 평가할 수 있는 모델을 구축하는 것을 목표로 한다.
이 모델은 전문적인 심리 상담 이전 단계에서 간단한 초기 평가나 재미로 활용할 수 있는 가벼운 진단 도구로 설계되었다. 이를 통해 미술치료의 접근성을 높이고, 부모가 아동의 심리적 상태와 감정을 이해하는 데 도움을 주는 것을 기대한다.
전문적인 미술심리가 아닌 딥러닝을 활용한 객체를 분류 후 Chat GPT를 활용한 것으로 재미 또는 참고용으로 활용하는 것을 권장한다.
2. 데이터셋의 전반적인 구성
프로젝트에 사용된 이미지 데이터셋은 Ai-hub에서 다운로드 받았다. 데이터셋의 구성은 다음과 같다.
TS_나무 | Training_image | Training_label | Validation_image | Validation_lable |
TS_남자사람 | Training_image | Training_label | Validation_image | Validation_lable |
TS_여자사람 | Training_image | Training_label | Validation_image | Validation_lable |
TS_집 | Training_image | Training_label | Validation_image | Validation_lable |
이 프로젝트는 총 4개의 카테고리로 나뉘며, 각 카테고리마다 Training 이미지가 14,000장씩 포함되어 있다. 특히, 각 카테고리에는 구체적으로 정의된 객체가 포함되어 있으며, 이러한 객체들은 미술 심리 검사에서 주요 분석 항목으로 활용된다. 예를 들어, "나무" 카테고리의 경우 나무전체, 기둥, 수관, 가지, 뿌리, 나뭇잎 등 총 15개의 세부 객체로 구성되어 있다. 이러한 객체들은 그림을 분석하여 아이들의 심리 상태를 평가하는 데 중요한 역할을 한다. 자세한 정보는 아래 표를 통해 확인할 수 있다.
TS_나무 | 14개 | 나무전체, 기둥, 수관, 가지, 뿌리, 나뭇잎, 꽃, 열매, 그네, 새, 다람쥐, 구름, 달, 별 |
TS_남자사람 | 18개 | 사람전체, 머리, 얼굴, 눈, 코, 입, 귀, 머리카락, 목, 상체, 팔, 손, 다리, 발, 단추, 주머니, 운동화, 남자구두 |
TS_여자사람 | 18개 | 사람전체, 머리, 얼굴, 눈, 코, 입, 귀, 머리카락, 목, 상체, 팔, 손, 다리, 발, 단추, 주머니, 운동화, 여자구두 |
TS_집 | 15개 | 집전체, 지붕, 집벽, 문, 창문, 굴뚝, 연기, 울타리, 길, 연못, 산, 나무, 꽃, 잔디, 태양 |
2. 기대 효과
1. 아동의 창의성 및 개성 이해 도구로 활용
아이의 그림을 분석함으로써 그들의 상상력, 창의성, 그리고 현재 흥미를 파악할 수 있다. 이를 통해 부모나 교사가 아이를 더 잘 이해하고, 적합한 지원 방법을 계획할 수 있다.
2. 미술 치료 접근성 향상 및 비용 절감
전문 미술치료사와의 상담이 부담스러운 경우 또는 전문 미술치료사와의 상담 전 간편한 검사로 접근성을 높이고, 심리 검사 비용을 낮출 수 있다. 이는 특히 경제적 또는 지리적 제약이 있는 환경에서 효과적이다.
3. 심리적 상태의 초기 파악 및 정서적 지원
아이들의 그림을 통해 정서적 상태(불안, 우울, 자신감 등)를 간단히 파악할 수 있다. 전문적인 심리 상담으로 대체할 수 없기 때문에 전문적인 심리 상담 이전 단계에서 사용하여 초기 조기 진단의 도구로 활용 가능하며, 필요 시 전문가와의 연결을 돕는 브릿지 역할을 할 수 있다.
3. 요약
1. 프로젝트 흐름도
2. 결과
Faster R-CNN - 나무
14개 객체 - 나무전체, 기둥, 수관, 가지, 뿌리, 나뭇잎, 꽃, 열매, 그네, 새, 다람쥐, 구름, 달, 별
+----------+------+------+--------+-------+
| class | gts | dets | recall | ap |
+----------+------+------+--------+-------+
| 나무전체 | 1400 | 1451 | 0.999 | 0.999 |
| 기둥 | 1400 | 1557 | 0.994 | 0.992 |
| 수관 | 1490 | 1767 | 0.987 | 0.985 |
| 가지 | 2143 | 3228 | 0.959 | 0.937 |
| 뿌리 | 1416 | 1544 | 0.992 | 0.989 |
| 나뭇잎 | 4050 | 5398 | 0.935 | 0.917 |
| 꽃 | 2821 | 3230 | 0.986 | 0.982 |
| 열매 | 4824 | 6344 | 0.956 | 0.942 |
| 그네 | 1409 | 1585 | 0.996 | 0.993 |
| 새 | 1506 | 1863 | 0.977 | 0.971 |
| 다람쥐 | 1418 | 1698 | 0.984 | 0.979 |
| 구름 | 2605 | 2948 | 0.994 | 0.992 |
| 달 | 1406 | 1604 | 0.996 | 0.996 |
| 별 | 4402 | 4517 | 0.983 | 0.983 |
+----------+------+------+--------+-------+
| mAP | | | | 0.975 |
+----------+------+------+--------+-------+
mmdet - INFO - Epoch(val) [12][1400] AP50: 0.9750, mAP: 0.9754
Faster R-CNN - 집
15개 객체 - 집전체, 지붕, 집벽, 문, 창문, 굴뚝, 연기, 울타리, 길, 연못, 산, 나무, 꽃, 잔디, 태양
+--------+------+------+--------+-------+
| class | gts | dets | recall | ap |
+--------+------+------+--------+-------+
| 길 | 1443 | 2478 | 0.987 | 0.971 |
| 굴뚝 | 1405 | 1593 | 0.990 | 0.988 |
| 산 | 1651 | 2937 | 0.984 | 0.954 |
| 연기 | 1406 | 1670 | 0.982 | 0.976 |
| 연못 | 1407 | 1677 | 0.996 | 0.993 |
| 나무 | 1695 | 2040 | 0.991 | 0.988 |
| 집벽 | 1420 | 1539 | 0.995 | 0.994 |
| 문 | 1425 | 1627 | 0.991 | 0.990 |
| 태양 | 1404 | 1555 | 0.994 | 0.992 |
| 창문 | 2434 | 2714 | 0.986 | 0.982 |
| 잔디 | 5811 | 7818 | 0.943 | 0.924 |
| 지붕 | 1417 | 1562 | 0.997 | 0.997 |
| 집전체 | 1401 | 1449 | 0.999 | 0.999 |
| 울타리 | 2044 | 3145 | 0.973 | 0.956 |
| 꽃 | 2922 | 3335 | 0.979 | 0.975 |
+--------+------+------+--------+-------+
| mAP | | | | 0.979 |
+--------+------+------+--------+-------+
mmdet - INFO - Epoch(val) [12][1400] AP50: 0.9790, mAP: 0.9786
gts는 실제 객체 수, dets는 탐지된 객체 수를 의미한다. 위의 결과를 보면 모든 class에서 실제 객체 수 보다 더 많이 탐지했다. 하지만 recall, ap, mAP를 보면 어느정도 안정적인 성능을 보여주고 있다. Recall은 TP / (TP + FN)로 TP(True Positive)는 올바르게 탐지된 객체 수, FN(False Negative)은 탐지하지 못한 실제 객체 수이다. 따라서 Recall이 높다는 것은 모델이 실제 객체를 거의 놓치지 않고 잘 탐지하고 있다는 뜻이다. 또한, ap는 AP(Average Precision)로 정밀도(Precision)와 재현율(Recall)의 균형을 종합적으로 평가한 것이다. 따라서 잘못 탐지(FP)가 Recall에 비해 크게 많지 않다는 뜻이다. 즉, 탐지된 객체 중 대부분이 정확하다는 뜻이다. 정리를 하면 다음과 같다.
- 객체를 잘 놓치지 않음: 대부분의 실제 객체를 탐지하고 있음. (Recall이 높음)
- 정확도가 높음: 탐지한 객체 중 잘못된 탐지(FP)가 비교적 적음. (AP가 높음)
- 모델의 성능이 전반적으로 고르게 유지됨: 클래스별로 성능의 편차가 크지 않아 mAP가 높음.
- 잘못 탐지가 많다면 응용 분야(예: 심리 분석)에 따라 결과에 영향을 줄 수 있으므로, FP를 줄이는 추가적인 개선 작업이 필요
밑의 그림1을 통해 확인할 수 있듯이 그림 속 여러 객체를 잘 탐지하는 것을 알 수 있다.
4. 분석 대상 확인
1. 이미지 샘플 확인
[고양시, "AI 기반 아동 미술심리 진단을 위한 그림 데이터 구축", Aihub, 2023년 12월 수정, 2024년 11월 접속, https://www.aihub.or.kr/aihubdata/data/view.do?currMenu=115&topMenu=100&dataSetSn=71399]
이미지는 앞에서 확인했 듯 유효한 이미지는 4개 카테고리마다 14,000장 총 56,000장의 사진으로 구성된 데이터셋이다. 사진은 다음과 같다. 아래 그림2, 그림3을 토대로 학습을 진행한 후 모델의 성능을 학인해 보고자 직접 그린 그림 및 지인들에게 부탁한 그림들을 기반을 성능을 확인해 보고자 한다.
5. 모델 훈련
1. Faster R-CNN
Faster R-CNN은 객체 탐지 모델로 객체 탐지 분야에서 높은 정확도와 안정성을 제공하는 모델이다. Faster R-CNN은 높은 정확도를 보여주지만 다른 모델인 YOLO, SSD 등에 비해 느린 편이다. Faster R-CNN은 Two-Stage 구조로 RPN(Region Proposal)과 Classification/Regression의 두 단계를 거치면서 연산량이 증가하기 때문에 다른 모델에 비해 느리다. 따라서 높은 정확도가 중요한 작업에서 Faster RCNN은 적합한 모델이라고 볼 수 있다. 따라서 필자가 '아동 미술심리 진단을 위한 그림' 딥러닝 모델을 만드는데 사용한 것이다. 정리를 하면 아래와 같다.
- 느린 속도: Two-Stage 구조로 연산량이 많아 다른 모델에 비해 느리다.
- 정확도가 중요한 작업: 아동 미술심리 진단에서는 그림 속 객체를 정확히 탐지하여 심리 상태를 분석하는 것이 중요하다.
- 다양한 객체와 세부 구성 탐지: 그림에는 다양한 객체(별, 나뭇잎, 가지 등)가 있으며, 각각의 객체를 정확히 분류하고 바운딩 박스로 구분해야 한다.
- 작은 객체 탐지: Faster R-CNN은 작은 객체(별, 꽃 등)와 복잡한 배경에서도 높은 정확도를 유지할 수 있다.
Faster R-CNN은 정확도는 높지만 학습 속도가 느려 '아동 미술심리 진단을 위한 그림' 데이터셋에서 총 4개 카테고리인 나무, 남자사람, 여자사람, 집에서 나무, 집을 대상으로 학습을 진행했다. 뿐만 아니라 미술심리 진단을 위한 그림을 그릴 때 나무, 집, 남자사람, 여자사람을 한 장에 전부를 그리는 것아닌, 각각 따로 그리기 때문에 나무, 집을 같이 학습한 것이 아닌 따로 학습을 진행해 최종적으로 두 개의 모델을 만들었다.
2. 나무
14개 객체 - 나무전체, 기둥, 수관, 가지, 뿌리, 나뭇잎, 꽃, 열매, 그네, 새, 다람쥐, 구름, 달, 별
나무 데이터셋을 Faster R-CNN으로 학습을 했을 때 5시간 51분이 걸렸다. 학습의 결과는 아래와 같다.
+----------+------+------+--------+-------+
| class | gts | dets | recall | ap |
+----------+------+------+--------+-------+
| 나무전체 | 1400 | 1451 | 0.999 | 0.999 |
| 기둥 | 1400 | 1557 | 0.994 | 0.992 |
| 수관 | 1490 | 1767 | 0.987 | 0.985 |
| 가지 | 2143 | 3228 | 0.959 | 0.937 |
| 뿌리 | 1416 | 1544 | 0.992 | 0.989 |
| 나뭇잎 | 4050 | 5398 | 0.935 | 0.917 |
| 꽃 | 2821 | 3230 | 0.986 | 0.982 |
| 열매 | 4824 | 6344 | 0.956 | 0.942 |
| 그네 | 1409 | 1585 | 0.996 | 0.993 |
| 새 | 1506 | 1863 | 0.977 | 0.971 |
| 다람쥐 | 1418 | 1698 | 0.984 | 0.979 |
| 구름 | 2605 | 2948 | 0.994 | 0.992 |
| 달 | 1406 | 1604 | 0.996 | 0.996 |
| 별 | 4402 | 4517 | 0.983 | 0.983 |
+----------+------+------+--------+-------+
| mAP | | | | 0.975 |
+----------+------+------+--------+-------+
mmdet - INFO - Epoch(val) [12][1400] AP50: 0.9750, mAP: 0.9754
- Class: 나무전체, 기둥, 수관 등 14개의 객체를 보여준다.
- gts: 해당 클래스에 존재하는 실제 객체의 총 수
- dets: 모델이 탐지한 객체의 총 수
- recall: 탐지된 객체 중 실제 객체를 얼마나 잘 탐지했는가
- ap: 해당 클래스의 정밀도-재현율 관계에서 계산된 평균 정밀도
전체적인 성능인 mAP는 AP의 평균으로 0.975로 매우 높은 값을 보여준다. 즉, 모델이 대부분의 객체를 정확히 탐지하고 분류했음을 의미한다. 하지만 gts, dets 즉, 실제 객체의 총 수와 탐지한 객체의 총 수가 차이를 보면 dets의 수가 전체적으로 많다. 즉, 중복 탐지의 가능성이 높다.
gts와 dets의 차이가 있지만 AP의 값이 전체적으로 높은 값을 보여주는데 이는 FP(잘못된 탐지, False Positive)가 많다면 AP에 부정적인 영향을 주기 때문에 AP의 값이 작아진다. 또한, recall(재현율)은 TP/gts 즉, 실제 객체 중 몇 퍼센트를 탐지했는지를 나타내는 지표로 역시 높은 값을 보여준다. 따라서 실제 객체를 거의 모두 탐지했다는 것이다. 따라서 잘못된 탐지는 적으며, 중복된 탐지가 많다고 볼 수 있다.
3. 집
15개 객체 - 집전체, 지붕, 집벽, 문, 창문, 굴뚝, 연기, 울타리, 길, 연못, 산, 나무, 꽃, 잔디, 태양
나무 데이터셋을 Faster R-CNN으로 학습을 했을 때 4시간 46분이 걸렸다. 학습의 결과는 아래와 같다.
+--------+------+------+--------+-------+
| class | gts | dets | recall | ap |
+--------+------+------+--------+-------+
| 길 | 1443 | 2478 | 0.987 | 0.971 |
| 굴뚝 | 1405 | 1593 | 0.990 | 0.988 |
| 산 | 1651 | 2937 | 0.984 | 0.954 |
| 연기 | 1406 | 1670 | 0.982 | 0.976 |
| 연못 | 1407 | 1677 | 0.996 | 0.993 |
| 나무 | 1695 | 2040 | 0.991 | 0.988 |
| 집벽 | 1420 | 1539 | 0.995 | 0.994 |
| 문 | 1425 | 1627 | 0.991 | 0.990 |
| 태양 | 1404 | 1555 | 0.994 | 0.992 |
| 창문 | 2434 | 2714 | 0.986 | 0.982 |
| 잔디 | 5811 | 7818 | 0.943 | 0.924 |
| 지붕 | 1417 | 1562 | 0.997 | 0.997 |
| 집전체 | 1401 | 1449 | 0.999 | 0.999 |
| 울타리 | 2044 | 3145 | 0.973 | 0.956 |
| 꽃 | 2922 | 3335 | 0.979 | 0.975 |
+--------+------+------+--------+-------+
| mAP | | | | 0.979 |
+--------+------+------+--------+-------+
mmdet - INFO - Epoch(val) [12][1400] AP50: 0.9790, mAP: 0.9786
- Class: 길, 굴뚝, 산 등 15개의 객체를 보여준다.
- gts: 해당 클래스에 존재하는 실제 객체의 총 수
- dets: 모델이 탐지한 객체의 총 수
- recall: 탐지된 객체 중 실제 객체를 얼마나 잘 탐지했는가
- ap: 해당 클래스의 정밀도-재현율 관계에서 계산된 평균 정밀도
나무와 마찬가지로 전체적인 성능인 mAP는 AP의 평균으로 0.979로 매우 높은 값을 보여준다. 즉, 모델이 대부분의 객체를 정확히 탐지하고 분류했음을 의미한다. 하지만 집 역시 gts, dets 즉, 실제 객체의 총 수와 탐지한 객체의 총 수가 차이를 보면 dets의 수가 전체적으로 많다. 즉, 중복 탐지의 가능성이 높다.
gts와 dets의 차이가 있지만 mAP의 값이 높은 값을 보여주는데 이는 FP(잘못된 탐지, False Positive)가 많다면 AP에 부정적인 영향을 주기 때문에 AP와 mAP의 값이 작아진다. 또한, recall(재현율)은 TP/gts 즉, 실제 객체 중 몇 퍼센트를 탐지했는지를 나타내는 지표로 역시 높은 값을 보여준다. 따라서 실제 객체를 거의 모두 탐지했다는 것이다. 따라서 잘못된 탐지는 적으며, 중복된 탐지가 많다고 볼 수 있다.
4. 종합
Faster R-CNN
- 높은 정확도: Faster R-CNN은 RPN(Region Proposal Network)을 통해 객체를 탐지한 뒤 Classification/Regression 단계를 거쳐 높은 정밀도와 재현율을 제공
- 느린 속도: Two-Stage 구조로 인해 다른 모델(YOLO, SSD)에 비해 속도가 느리지만, 정확도가 중요한 작업에서 적합
- 다양한 객체 및 세부 구성 탐지: 그림 속에 있는 다양한 객체(예: 나뭇잎, 가지, 길, 창문 등)를 효과적으로 탐지
- 작은 객체 탐지: Faster R-CNN은 복잡한 배경 속 작은 객체(예: 별, 꽃 등)도 높은 정확도로 탐지 가능
모델 훈련 및 데이터 구성
- 데이터 구성:
- 나무: 14개 객체 (예: 나무전체, 기둥, 가지 등)
- 집: 15개 객체 (예: 집전체, 지붕, 문 등)
- 훈련 및 시간:
- 나무: 5시간 51분 소요
- 집: 4시간 46분 소요
모델 성능 평가
모델 성능은 mAP, Recall, AP를 통해 분석되었으며, 두 데이터셋 모두에서 높은 성능을 보여 준다.
나무 데이터셋 결과
- mAP = 0.975
- 모델이 대부분의 객체를 높은 정밀도와 재현율로 탐지했음을 의미
- 클래스별 성능:
- 대부분의 클래스에서 AP > 0.9, Recall > 0.93로 높은 성능을 보임
- 일부 클래스(예: 나뭇잎, 열매)는 dets > gts로 중복 탐지 가능성이 있지만, 전체적인 AP가 높아 성능에 큰 영향을 미치지 않음
집 데이터셋 결과
- mAP = 0.979
- 집 데이터셋에서도 높은 mAP를 기록하며, 모든 클래스에서 안정적인 탐지 성능을 보임
- 클래스별 성능:
- AP > 0.95, Recall > 0.97로 매우 높은 성능
- 잔디 등 일부 클래스는 복잡한 패턴으로 인해 중복 탐지 가능성이 있지만, 높은 Recall과 AP로 안정적 탐지를 유지
하지만 그림4를 보면 성인이 그린을 대상으로는 정확도가 낮은 것을 확인할 수 있다. 이는 아동이 그린 그림을 바탕으로 학습을 했기 때문에 성인 수준의 그림에 대해서는 잘못된 예측을 할 수 있다고 판단한다.
꽅의 경우 새로 인식을 했다. 다람쥐의 경우 꼬리를 0.52%로 달로 인식하기도 했지만 0.86%로 다람쥐로 인식했다고 볼 수 있다.
6. 결론
본 프로젝트는 아동이 그린 그림을 기반으로 간단한 미술심리 진단 도구를 제공하기 위해, Faster R-CNN을 활용하여 딥러닝 모델을 구축하는 것을 목표로 진행되었다. Ai-Hub에서 제공하는 "AI 기반 아동 미술심리 진단을 위한 그림 데이터셋"을 사용하여, 나무와 집 카테고리 데이터를 독립적으로 학습시켰다.
프로젝트 성과
Faster R-CNN을 사용한 결과, 나무와 집 데이터셋 모두에서 높은 정확도와 안정성을 확인할 수 있었다. 모델은 각각 14개와 15개의 객체를 탐지하는 작업에서 정확한 분류와 탐지를 수행하며, 높은 정밀도(AP)와 재현율(Recall)을 기록했다.
- 나무 데이터셋: mAP = 0.975
- 집 데이터셋: mAP = 0.979
모델 선택의 적합성
아동 미술심리 진단의 특성상, 그림 속 객체를 정확히 탐지하고 분석하는 것이 매우 중요하다 생각해 Faster R-CNN을 선택했다. Faster R-CNN으로 학습한 결과 높은 정확도, 작은 객체(별, 꽃 등)와 복잡한 배경에서도 안정적으로 탐지할 수 있는 결과를 얻었다.
향후 개선 방향
본 프로젝트는 나무와 집 데이터를 중심으로 진행되었으나, 다음과 같은 확장 및 개선을 계획하고 있다.
- 속도 최적화: Faster R-CNN의 느린 학습 및 탐지 속도를 보완하기 위해 YOLO, SSD 등 속도가 빠른 모델을 활용하여 성능을 평가하고 비교할 예정이다.
- 데이터셋 확장: 현재 작업된 나무와 집 외에도 여자사람, 남자사람 데이터를 포함하여 학습 범위를 넓히고, 모델의 실용성과 적용성을 강화할 것이다.
- 기회가 된다면 아동이 그린 그림만 아닌 성인이 그린 그림 데이터셋을 이용해 모델을 학습할 것이며, 더 정확한 객체 탐지 모델을 만들 것이다.
'딥러닝' 카테고리의 다른 글
AI 기반 아동 미술심리 진단을 위한 그림 분석 - YOLOv5(최종) (3) | 2024.12.17 |
---|---|
AI 기반 아동 미술심리 진단을 위한 그림 분석 - SSD512 (3) | 2024.12.06 |
AI 모델로 한식 구별하기 - 딥러닝으로 한식 도감 만들기 (29) | 2024.11.14 |
강아지 VS 고양이(Cat vs Dog), 강아지 고양이 구분 (13) | 2024.11.09 |
패션 MNIST 데이터셋을 활용한 딥러닝 모델 성능 비교와 분석 (5) | 2024.11.05 |