OpenCV 비전 실무실습 데이터 파일← 이전목차다음 →MetaContents

참고 자료

실습 데이터 파일

실습에 쓰는 파일은 교안과 함께 받은 data 폴더에 있습니다. 모두 tools/make_data.py 가 OpenCV 로 도형을 그려 만든 연습용 가상 그림이고, 실제 사진이나 상점, 제품과 관계없습니다. 파일을 작게 만들어 두어서 그림 한 장이 30KB 를 넘지 않습니다. 동영상은 하나에 20~80KB 이고, 20장까지의 원본을 모두 합쳐도 2.5MB 쯤입니다. 이와 따로 18장부터 쓰는 YOLO 가중치 yolo11n.pt(5.4MB)가 들어 있습니다. 장이 추가되면 이 목록도 함께 늘어납니다.

파일 목록

파일내용크기쓰는 곳
fruit_stand.png과일 가게 진열대. 사과(빨강), 귤(주황), 라임(초록)320×240, 컬러, 9.7KB1장 본문, 실습 3, 4, 5
ch01_samples/parcel_box.png택배 상자200×160, 컬러, 2.8KB1장 프로젝트
ch01_samples/road_sign.jpg둥근 교통 표지180×180, 컬러(jpg), 5.2KB1장 프로젝트
ch01_samples/gear_gray.png공장 부품(톱니바퀴)160×160, 흑백(채널 1), 2.4KB1장 프로젝트
ch01_samples/broken.png이름만 png 이고 속은 글자인 깨진 파일60바이트1장 프로젝트
ch02_sticker.png투명 바탕의 웃는 별 스티커(BGRA, 가장자리 반투명)160×160, 채널 4, 6.4KB2장 본문, 실습 1
ch02_market.png동네 장터 진열대. 위 칸 우유·식빵·통조림, 아래 칸 수박·달걀·당근320×240, 컬러, 17.2KB2장 본문, 실습 3
ch02_product.png가상 쇼핑몰의 머그컵 상품 그림(MORNING 글자, SALE 30% 가격표)240×180, 컬러, 10.5KB2장 본문, 실습 2, 5
ch02_shop/ 의 3장(tshirt, sneaker, bag)가상 쇼핑몰 상품 그림(상품 번호 T-01, S-07, B-12)200×150, 컬러, 4.0~18.6KB2장 프로젝트
ch02_gallery/ 의 6장(bus, house, tree, cup, umbrella, bicycle)도형으로 그린 작은 그림120×90, 컬러, 1.8~5.0KB2장 실습 4
fruit_basket.png과일 바구니. 사과 셋, 바나나 둘, 라임 둘, 포도 한 송이, 갈색 바구니320×240, 컬러, 22.8KB3장 본문, 실습 1~5, 프로젝트
color_chips.png색 견본 12칸과 영문 이름300×200, 컬러, 14.5KB3장 본문, 실습 3
ch04_scenes/ 의 3장(sunset, lake, forest)색 경향이 다른 풍경: 노을(빨강이 많음), 호수(파랑이 많음), 숲(초록이 많음)320×240, 컬러, 3.4~11.9KB4장 본문, 실습 1, 2, 3, 5
ch04_exposure/ 의 4장(normal, dark, bright, low_contrast)같은 거리 장면을 노출 알맞음·어둡게·밝게·대비 낮게 만든 그림320×240, 컬러, 9.8~10.2KB4장 본문, 실습 4, 프로젝트, 5장 실습 1~3
ch05_backlit.png밝은 창을 등진 역광 실내. 책장, 시계, 화분, 컵이 어둠 속에 있다320×240, 컬러, 20.3KB5장 본문, 실습 4
ch05_fruit_dim.png노란 불빛 아래 어둑하고 누런 과일 상자320×240, 컬러, 7.9KB5장 본문, 실습 5
ch05_train/ 의 6장(part_01~06)컨베이어 위 톱니바퀴·볼트를 노출만 달리 그린 학습 사진: 정상, 어둡게, 밝게, 대비 낮게, 어둡고 대비 낮게, 왼쪽 그림자240×180, 컬러, 13.1~17.6KB5장 본문, 프로젝트
ch06_board.png지하 주차장 안내판. 고른 벽, "B2 EXIT" 와 화살표, 굵기 2·4·8칸 줄무늬, 아래쪽 밝기 경계(왼쪽 60, 오른쪽 200)320×240, 흑백, 6.1KB6장 본문, 실습 1~5
ch06_parking.png밤의 야외 주차장. P 표지판, 불 켜진 건물, 주차선, 도형 자동차 두 대320×240, 컬러, 16.2KB6장 프로젝트
ch07_sign.png건물 안내 표지판. 초록 판에 흰 글자 "GATE B", 화살표, 노란 네모, 주의 줄무늬320×240, 컬러, 11.1KB7장 본문, 실습 1~5
ch07_parts.png컨베이어 위 부품: 와셔, 육각 너트, 구멍 뚫린 판, 판 위 굵기 1칸의 얇은 금, 글자 "A-07"320×240, 흑백, 4.3KB7장 실습 3, 프로젝트
ch08_parts.png밝은 작업대 위의 동전·와셔·볼트. 히스토그램 봉우리가 둘320×240, 흑백, 9.3KB8장 본문, 실습 1, 2, 5
ch08_shadow_doc.png오른쪽으로 갈수록 그늘이 진 실습 안내문(영문)320×240, 흑백, 23.9KB8장 본문, 실습 3, 4
ch08_clean_doc.png같은 안내문의 그늘 없는 판(정답 비교용)320×240, 흑백, 11.4KB8장 본문, 실습 3, 4
ch08_receipts/ 의 6장(receipt_1~3, receipt_1~3_mask)그늘·그림자·얼룩이 있는 영수증 세 장과 글자 자리의 정답 마스크(글자 255, 바탕 0)180×240, 흑백, 2~10KB8장 프로젝트
ch09_shapes.png검은 바탕의 흰 도형 판: 네모, 원, 굵기 2 선, 작은 점 둘, 4칸 떨어진 두 원, 고리320×200, 이진, 1.9KB9장 본문, 실습 2
ch09_letters_clean.png흰 글자 MORPH 의 깨끗한 판320×120, 이진, 1.6KB9장 본문, 실습 3, 4, 5
ch09_letters_broken.png같은 글자에 굵기 2 틈 5줄과 반지름 2 구멍 14개를 낸 판320×120, 이진, 1.8KB9장 본문, 실습 4, 5
ch09_inspect/ 의 4장(tray_1, tray_2, tray_1_mask, tray_2_mask)먼지·반사광·금이 있는 부품 검사 사진 두 장(부품 6개, 7개)과 정답 마스크(부품 255)240×180, 흑백, 1.4~6.5KB9장 프로젝트
ch10_shapes.png도형 판: 바탕 50, 네모 200, 원 140, 세모 230, 계단 띠 80·110·140·170·200320×240, 흑백, 2.3KB10장 본문, 실습 1~5
ch10_road.png위에서 내려다본 도로: 세로 차선, 노란 두 줄, 정지선, 횡단보도 띠, 자동차 한 대320×240, 컬러, 11KB10장 프로젝트
ch11_set/ 의 8장(shapes, parts, letters, fade 와 각각의 _edge 정답 경계)도형, 부품, 영문 글자 "EDGE"·"Canny 11", 옅어지는 띠 그림과 두께 1 정답 경계(경계 255)320×240, 흑백, 1.1~4.0KB11장 본문, 실습 1~5, 프로젝트
ch12_shapes.png흰 도형 판: 곧은 네모 80×50, 원 r35, 30도 기운 네모, 세모, 도넛(구멍 r20), 타원, 작은 점 2개320×240, 이진, 2.0KB12장 본문, 실습 1, 3, 4
ch12_nested.png도넛, 구멍 속에 점이 든 액자, 꽉 찬 원320×160, 이진, 1.7KB12장 본문, 실습 2
ch12_tray.png부품 12개와 먼지 40개, 반사점이 있는 작업대320×240, 흑백, 10.2KB12장 본문, 실습 5
ch12_conveyor/ 의 3개(belt_1.png, belt_2.png, answer.csv)크기 세 종류(작음·보통·큼)의 원·네모 부품 9개·12개와 먼지, 정답표(사진, 모양, 크기, x, y)흑백, 9.5~9.9KB12장 프로젝트
ch13_shapes.png어두운 바탕에 원·세모·네모·긴 막대·별·초승달·팔각형·20도 기운 네모320×240, 컬러, 4.2KB13장 본문, 실습 1~3
ch13_parcel.png책상 위 택배 상자. 흰 송장(가로 60~204, 세로 40~152), 바코드, 주황 스티커. 이름·주소는 지어낸 것, 번호는 010-0000-0000320×240, 컬러, 17.5KB13장 본문, 실습 4, 5
ch13_signs.png, ch13_signs_answer.csv단순 도형으로 그린 가상 표지판 8개(실제 표지 도안이 아님)와 정답 표(sign_id, cx, cy, shape)320×240, 컬러, 10.2KB13장 프로젝트
ch14_grid.png모눈, 네 구석 색 점(빨강 (40,40), 초록 (280,40), 파랑 (280,200), 주황 (40,200)), 글자 F·AB12, 화살표320×240, 컬러, 14KB14장 본문, 실습 1, 3, 4
ch14_icon.png, ch14_rings.png32×24 아주 작은 아이콘, 굵기 2칸 동심원 무늬(흑백)0.5KB, 15KB14장 본문, 실습 1
ch14_photos/ 의 3장(wide, tall, square)가로로 긴 시계, 세로로 긴 귤, 거의 정사각형인 접시320×180·160×240·220×200, 4~6KB14장 본문, 실습 2
ch14_board_photo.png비스듬히 찍힌 화이트보드. 꼭짓점 (62,40), (268,22), (296,214), (34,198)320×240, 컬러, 23KB14장 본문, 실습 5
ch14_docs/비스듬한 문서 셋(notice, receipt_a, receipt_b, 320×240)과 바로 본 원본 _flat(180×240), 네 꼭짓점을 일부러 섞은 순서로 적은 corners.json16~27KB14장 프로젝트
ch15_conveyor.mp4컨베이어 벨트 위로 상자 셋이 지나가는 동영상320×240, 10fps, 80프레임, 77KB15장 본문, 실습 1, 2, 5
ch15_yard.mp4마당 앞으로 빨간 공(15~54프레임)과 파란 수레(30~59프레임)가 지나가는 동영상240×180, 10fps, 60프레임, 40KB15장 본문, 실습 3, 4
ch15_parking.mp4주차장 입구 앞을 자동차 3대가 지나가고 40~49프레임에 낙엽이 날리는 동영상240×160, 10fps, 150프레임, 75KB15장 본문, 프로젝트
ch16_raw/ 의 39개(사진 38개, answer.csv)사과·귤·라임 가상 사진(160×120~320×240, png 31·jpg 7). 깨짐·빈 파일·작음·흑백·투명·흐림·어두움·밝음·중복을 일부러 섞었고, 정답표에 파일마다 문제와 처리(버림·고침)를 적었다약 430KB16장 본문, 실습 1~5, 프로젝트
ch17_raw/ 의 62개(part_001~060.png, annotations.csv, mistakes.csv)컨베이어 위 볼트·너트·와셔를 위에서 본 그림 60장(320×240, 물체 1~5개, 어두운 그림 9장, 먼지 낀 그림 9장)과 라벨링 도구에서 내보낸 것처럼 꾸민 주석(픽셀 좌표, 182줄, 연습용 실수 12건)과 그 실수의 정답약 570KB17장 본문, 실습 1, 3, 4, 5
ch17_inbox/여러 곳에서 받은 그림 폴더를 흉내 냄: 크기·확장자가 다른 그림, 대문자 확장자, 아주 작은 그림, 깨진 그림, 빈 파일, 글 파일, 하위 폴더27KB17장 본문, 실습 2
yolo11n.pt가장 작은 YOLO 가중치(COCO 80가지 물체로 미리 학습됨, 라이선스 AGPL-3.0). 내려받은 실제 파일이다5.4MB18장 실습 1, 2
ch19_incoming/ 의 26개(belt_001~024, answer.csv, issues.csv)17장과 같은 양식의 새 부품 그림 24장(png·jpg). 어두움, 노이즈, 아주 어두움, 흐림, 640×480, 복사본, 다시 저장한 중복, 깨짐, 빈 파일을 섞었다. 정답 상자 64줄과 그림마다의 문제약 240KB19장 실습 1, 2, 3, 프로젝트
ch19_belt.mp4, ch19_belt_answer.csv부품 5개가 지나가는 동영상(320×240, 10fps, 48프레임)과 프레임마다 반 넘게 보이는 부품의 상자20KB, 3KB19장 본문, 실습 5
ch20_demo/ 의 11개(part_01~10.png, answer.csv)17장과 같은 양식의 부품 그림 8장(어두운 그림 2장, 잡티 낀 그림 2장), 깨진 그림 1장, 복사본 1장, 정답표(bolt 6·nut 5·washer 7, 넓이 포함)약 100KB20장 본문, 프로젝트

그림 속 자리

1장 실습 3이 픽셀 값을 읽는 자리입니다. 배열은 [세로, 가로] 순서로 꺼냅니다.

물건가운데 자리 (가로, 세로)반지름색(BGR)
사과(80, 140)38(40, 40, 210)
귤(165, 145)33(30, 140, 250)
라임(245, 142)35(60, 170, 90)

2장부터의 그림 속 값

파일알아 둘 값
ch02_market.png수박의 가운데 (60, 186), 반지름 36. 실습 3이 [행, 열]로 잘라 낸다
fruit_basket.pngHSV 의 H(색상): 사과 1·3·174, 바나나 25, 라임 50, 포도 142, 바구니 14. 빨강이 0 근처와 179 근처 두 구간에 있다
ch04_scenes/B·G·R 평균: 노을 61.1·86.6·185.5, 호수 200.2·151.0·104.2, 숲 93.6·161.3·109.9
ch04_exposure/흑백 평균(표준편차): 알맞음 121.4(68.3), 어둡게 41.9, 밝게 203.9, 대비 낮게 125.2(20.3)
ch05_train/흑백 평균 36.8~200.3. 4장 판정으로 정상 1장, 고칠 사진 5장
ch05_backlit.png흑백 평균 74.9, 책장 부분(세로 40~164, 가로 15~114)의 표준편차 13.0
ch06_board.png고른 면 [165:215, 30:60] 의 밝기 60, 밝기 경계는 가로 160. 노이즈는 실습 코드에서 씨앗 600, 표준편차 20 으로 더한다
ch07_sign.png, ch07_parts.png노이즈는 실습 코드에서 씨앗 711~724 로 더한다. 부품 그림의 얇은 금은 밝기 120, 가로 110
ch08_parts.png, ch08_shadow_doc.pngOtsu 가 고르는 임계값: 부품 136, 안내문 137
ch09_letters_*, ch09_inspect/흰 잡티는 실습 코드에서 씨앗 911·912 로 더한다. 글자는 putText 의 부드러운 가장자리를 127 로 나눠 0/255 로 만들었다
ch10_shapes.png네모 가로 60~139·세로 40~119, 원 가운데 (230, 80) 반지름 40, 계단 띠 가로 160~299·세로 150~219. 노이즈는 실습 코드에서 씨앗 1010, 표준편차 20
ch10_road.png정지선 세로 160~171. 자동차(흑백 93)는 아스팔트(70)와 밝기가 비슷해 경계가 약하다
ch11_set/노이즈는 실습 코드에서 씨앗 1111, 1112, 1130. 점수는 정답 경계를 3×3 팽창해 1칸 여유를 둔 정밀도·재현율·F1
ch12_tray.png윤곽선 51개 가운데 면적 100 이상이 부품 12개. connectedComponentsWithStats 도 같은 12개
ch13_shapes.png, ch13_signs.pngapproxPolyDP 의 epsilon 비율 0.01 에서 모두 맞힌다(0.02 에서는 원을 팔각형으로 본다)
ch15_*.mp4mp4v 코덱. 데이터를 만들 때는 영문 임시 폴더에 쓴 뒤 bytes 로 옮긴다(VideoWriter 도 한글 경로에 쓰지 못한다)
ch16_raw/흐림 점수(Laplacian 분산): 흐린 사진 3.2·4.8·6.1, 선명한 사진은 203.8 이상. 기준은 흐림 100, 해밍 거리 5
ch17_raw/클래스 번호 0 bolt, 1 nut, 2 washer. 검사를 통과한 56장을 씨앗 1717 로 8:2 로 나눈다(학습용 45장·물체 146개, 검증용 11장·물체 26개)
ch19_incoming/이 데이터에 맞춰 기준을 다시 정했다: 흐림 30, 아주 어두움 30, 밝기 고침 50, 평균 해시 거리 2

실습이 만드는 파일

out_ 으로 시작하는 파일은 실습이 만듭니다. 지워도 실습을 다시 돌리면 생깁니다.

파일만드는 곳내용
out_ch01_first.png1장 실습 2파랑, 초록, 빨강 세 칸으로 칠한 첫 그림
out_ch01_edges.png1장 실습 5과일 진열대의 테두리만 남긴 흑백 그림
out_ch01_contact.png1장 프로젝트정상으로 읽힌 그림 셋을 이어 붙인 미리보기
out_ch02_png.png, out_ch02_q95.jpg, out_ch02_q80.jpg, out_ch02_q50.jpg, out_ch02_q20.jpg, out_ch02_q5.jpg2장 실습 2상품 그림을 PNG 와 JPG 품질별로 저장한 것
out_ch02_watermelon.png2장 실습 3진열대에서 잘라 낸 수박(76×76)
out_ch02_zoom.png, out_ch02_tag.png2장 실습 5가격표 확대 비교 그림(savefig)과 잘라 낸 가격표(imwrite)
out_ch02_report.png2장 프로젝트상품 번호 부분의 형식별 확대 비교 보고서
out_ch03_red_mask.png, out_ch03_red_only.png3장 실습 5빨강 마스크(흑백)와 빨강만 남긴 그림
out_ch03_masks.png3장 프로젝트원본, 네 색의 마스크, 네 색만 남긴 그림
out_ch04_swapped.png4장 실습 2노을 그림의 빨강과 파랑 채널을 바꾼 그림
out_ch04_report.png4장 프로젝트노출 네 장의 사진, 히스토그램, 판정을 모은 진단 보고서
out_ch05_color_eq.png5장 실습 5YCrCb 의 Y 만 평활화한 과일 상자
out_ch05_fixed/ (6장)5장 프로젝트판정에 맞게 고친 학습 사진
out_ch05_report.png5장 프로젝트원본과 고친 사진의 전후 판정 격자
out_ch06_best.png, out_ch06_compare.jpg6장 프로젝트가장 좋은 설정(Gaussian 3×3)의 결과와 2×2 비교 그림(크기 때문에 jpg)
out_ch07_compare.jpg7장 프로젝트노이즈 3종에 네 필터를 건 비교 격자(크기 때문에 jpg)
out_ch08_doc_binary.png8장 실습 3Adaptive GAUSSIAN_C 로 이진화한 안내문
out_ch08_receipts.png8장 프로젝트영수증 원본, 정답, 세 방법의 결과 격자
out_ch09_opened.png9장 실습 3열기 5×5 로 흰 잡티를 지운 글자
out_ch09_closed.png9장 실습 4닫기 5×5 로 틈과 구멍을 메운 글자
out_ch09_cleaned.png, out_ch09_compare.png9장 프로젝트다듬은 두 마스크와 전후 비교 격자
out_ch10_edges.png10장 실습 3기울기 크기 100 을 넘는 칸을 남긴 경계 지도
out_ch10_lanes.png10장 프로젝트세로 선은 빨강, 가로 선은 파랑으로 칠한 도로 그림
out_ch11_compare.jpg11장 프로젝트노이즈 30 의 세 그림에 세 방법을 건 결과 격자
out_ch12_parts.png12장 프로젝트두 컨베이어 사진에 상자, 번호, S·M·L 을 그린 결과
out_ch13_named.png13장 실습 3도형 판에 규칙으로 붙인 영어 이름
out_ch13_label.png13장 실습 4여백 10칸을 주고 잘라 낸 송장
out_ch13_processed.png13장 실습 5전화번호 줄을 흐리게 하고 송장만 이진화해 붙인 사진
out_ch13_signs.png13장 프로젝트표지판 ROI 8개를 64×64 로 잘라 이은 미리보기
out_ch14_letterbox.png14장 실습 2128×128 레터박스 세 장을 이은 그림
out_ch14_board_flat.png14장 실습 5바로 편 화이트보드
out_ch14_docs.png14장 프로젝트바로 펴고 크기를 맞춘 문서 세 장
out_ch15_edges.mp415장 실습 2프레임마다 Canny 경계를 찾은 동영상
out_ch15_background.png15장 실습 460장의 중앙값으로 만든 배경
out_ch15_summary.png15장 프로젝트지나간 자동차 셋의 대표 프레임을 모은 요약 사진
out_ch16_quality.csv16장 실습 2흐림 점수와 밝기 점수의 품질 표
out_ch16_aug_grid.png, out_ch16_aug8.png16장 실습 4, 5증강을 한 장씩 보인 격자와 랜덤 증강 여덟 장
out_ch16_removed.csv, out_ch16_dataset/, out_ch16_preview.png16장 프로젝트버린 파일과 이유, 128×128 로 맞추고 학습용만 증강한 묶음(train·test/클래스), 미리보기
out_ch17_gray/, out_ch17_log.csv17장 실습 1흑백 160×120 사본 60장과 처리 기록
out_ch17_inbox/, out_ch17_inbox_log.csv17장 실습 2처리에 성공한 그림과 실패 이유가 든 기록
out_ch17_problems.csv17장 실습 4주석 검사기가 찾은 실수 12건
out_ch17_yolo/17장 실습 5YOLO 데이터셋(images·labels × train·val, data.yaml). 18장에서 학습에 쓴다
out_ch17_check.png17장 프로젝트무작위 여섯 장에 라벨을 그린 확인 격자
out_ch18_runs/parts/18장 실습 2전이 학습 결과(weights/best.pt, last.pt, results.csv). 18장 실습 3~5·프로젝트와 19·20장에서 쓴다
out_ch18_report.png18장 프로젝트조건 4 × 처리 3 의 결과 격자
out_ch19_passed.csv, out_ch19_filter_log.csv19장 실습 1거르기를 통과한 그림과 탈락 이유
out_ch19_prepped/, out_ch19_prepped.csv19장 실습 2다듬은 그림과 손질 기록
out_ch19_detections.csv19장 실습 3찾은 물체 표
out_ch19_boxes.png, out_ch19_summary.csv19장 실습 4상자 그린 격자와 요약 표
out_ch19_video_counts.csv19장 실습 5프레임별 물체 수
out_ch19_config.json, out_ch19_report.csv, out_ch19_report.png19장 프로젝트파이프라인 설정, 보고서 표와 그림
out_ch20_plan.csv20장 실습 1수업 계획표
out_ch20_exercise/20장 실습 2쉬움·보통·어려움 연습 그림과 정답 마스크, answer.csv
out_ch20_grades.csv20장 실습 3자동 채점 결과
out_ch20_compare.png, out_ch20_onepage.png20장 실습 4전후 비교 격자와 한 장 요약
out_ch20_class_kit/, out_ch20_class_kit.zip20장 실습 5수업 자료 묶음
out_ch20_final.csv, out_ch20_final.png, out_ch20_worksheet.png20장 프로젝트종합 데모의 결과 표와 그림, 학습지

파일을 다시 만들려면

데이터는 tools/make_data.py 로 만들었습니다. 난수 씨앗을 고정해 두어서 다시 실행해도 같은 파일이 나옵니다. OpenCV 가 설치된 가상환경에서 과목 폴더를 작업 폴더로 두고 실행합니다. 2장부터의 그림 정의는 tools/parts/chNN.py 에 있고, make_data.py 가 함께 읽습니다.

PowerShell
python tools/make_data.py      # data 폴더에 실습용 그림을 다시 만든다
← 이전20장 · 확인문제와 해답다음 →용어집