0%

Unity

"사진만 주면 로봇이 그려주는 SDK가 있다면서요?" : 없어서 직접 만든 '미술작가 AI' 통합 제어 시스템

김*균··수정됨 2026.07.21

"사진만 주면 로봇이 그려주는 SDK가 있다면서요?" : 없어서 직접 만든 '미술작가 AI' 통합 제어 시스템

"분명 SDK가 있다고 들었는데...?"

사진을 찍어 넘기기만 하면 로봇이 그려주는 전용 SDK가 있다는 말을 듣고 프로젝트를 시작하였습니다. 그렇게 웹캠을 연결하고 SDK를 호출하기만 하면 모든 게 순조롭게 끝날 줄 알았습니다만...

하지만 기대했던 SDK는 어디에도 없었습니다. 그렇다고 프로젝트를 중단할 수도 없었기에, 이미지 프로세싱부터 시리얼 통신을 통한 로봇 제어까지 모든 경로를 직접 설계해야 하는 상황에 직면하게 되었습니다.


"이게 뭐야...?" (SDK 없이 마주한 로우 레벨의 현실)

SDK를 사용할 수 없게 된 순간, 로봇은 그저 시리얼 포트로 데이터가 들어오기만을 기다리는 기계에 불과했습니다. 이미지 데이터를 물리적인 움직임으로 변환하기 위해 넘어야 할 산이 많았습니다.

  • 불완전한 추출: 웹캠 화면에서 인물과 배경을 구분하지 못해 지저분한 선들이 그대로 노출되었습니다. 무엇을 그려야 할지 판단하는 필터링 로직을 직접 코드로 구현해야 했습니다.

  • 치명적인 노이즈: 데이터에 섞인 미세한 픽셀 파편들이 모두 '선'으로 인식되었습니다. 선 하나를 깔끔하게 그어야 하는데, 의미 없는 점들까지 일일이 그리느라 펜을 계속 들고 내리는 불필요한 동작이 반복되었습니다. 이로 인해 그림 한 장을 완성하는 데 걸리는 시간이 비정상적으로 길어지는 문제가 발생했습니다.

  • 직접 제어의 압박: 단순한 함수 호출이 아니라, 시리얼 통신을 통해 로봇 좌표를 하나하나 전송하고 펜의 Up/Down 타이밍까지 직접 스크립트로 정밀하게 제어해야 했습니다.


직접 구축한 '이미지-로봇 통합 제어 시스템'

  • ① 지능형 이미지 전처리: 웹캠 사진에서 불필요한 배경을 제거하고, 로봇이 따라 그릴 수 있는 정밀한 선화(Line Art) 데이터를 뽑아내는 스크립트를 작성했습니다.

  • ② 노이즈 정제 알고리즘 (BFS 기반): 픽셀 단위로 전수 조사하여, 일정 크기 이하의 자잘한 '먼지 픽셀'들을 삭제하는 로직을 구현했습니다. 이를 통해 불필요한 동작들을 제거하여 그리는 시간을 단축하고, 깔끔한 경로로만 움직일 수 있도록 최적화하였습니다.

  • ③ 시리얼 통신 좌표 엔진: 픽셀 좌표를 로봇의 물리 좌표(mm)로 변환하고, 이를 시리얼 통신으로 실시간 전송하는 제어 엔진을 완성했습니다.


"없어서 직접 만들었기에 가능했던 시스템"

SDK가 없었기 때문에 오히려 단순히 기능을 호출하는 수준을 넘어 웹캠의 이미지 처리부터 로우 레벨의 로봇 제어가 어떻게 맞물려 돌아가는지 그 본질을 이해할 수 있었습니다. 이제 이 시스템은 사진 한 장만 찍으면 로봇이 시리얼 통신 명령을 받아 작품을 그려내는 진짜 '미술작가 AI'로 작동합니다.

읽기 도구

3분 읽기

이 글이 도움이 되었나요?

다음으로 읽기