프로그래밍 10

Skinned Multi-Infant Linear model(SMIL)

성인 체형에만 맞춘 SMPL을 유아 체형에 맞출 수 있도록 개선한 모델이다. Introduction 기존의 SMPL과 같은 3d body pose 추정 모델은 성인 3D 스캔 데이터를 주로 이용하는데, 유아 체형은 shape을 학습할 수 있는 데이터가 없기 때문에 성인 체형을 억지로 축소한 듯한 추론 결과가 나타난다. 그래서 이를 보완하기 위해 노트북과, RGB-D 센서를 이용해 데이터를 수집한다. (RGB-D 센서가 3D scan 보다 비용이 저렴하고 사용하기 쉽다.) 유아의 RGB-D 데이터는 몇가지 문제가 있다. 불완전하고, 퀄리티가 낮은 데이터가 많다. 부분적인 카메라 시점(view)만 있다던지, 신체 부위가 가려진다던지, 대상자가 지시에 따를 수 없기 때문에 미리 정의된 포즈를 취할 수 없다던지..

프로그래밍 2021.07.16

windows, ubuntu os rotated image python

width, height inverted image를 다루는 방법 windows와 ubuntu에서 본 이미지의 width, height가 달라보이는 문제가 있었다. 모바일 기기(ex. 갤럭시, 아이폰)에서 찍은 이미지의 경우 회전 metadata가 설정되고, 돌아간 채로 저장되는 이미지들이 있어서 이 경우는 아래 코드처럼 체크해서 실제 눈으로 보이는 크기에 맞도록 수정해줘야 한다. from PIL import Image, ExifTags try: image=Image.open(filepath) for orientation in ExifTags.TAGS.keys(): if ExifTags.TAGS[orientation]=='Orientation': break exif = image._getexif() if..

프로그래밍 2021.07.16

nvidia-docker2 manual install(수동설치)

nvidia-docker2 설치 중 apt-get update 시 오류가 나는 부분이 있어 수동설치로 진행하였습니다. E: https://download.docker.com/linux/ubuntu/dists/xenial/stable/binary-amd64/Packages 파일을 받는데 실패했습니다 HTTP 서버에서 잘못된 응답 헤더를 보냈습니다 E: https://nvidia.github.io/libnvidia-container/ubuntu16.04/amd64/Packages 파일을 받는데 실패했습니다 HTTP 서버에서 잘못된 응답 헤더를 보냈습니다 E: https://nvidia.github.io/nvidia-container-runtime/ubuntu16.04/amd64/Packages 파일을 받는데..

프로그래밍 2021.06.23

네이버/구글 이미지 자동 크롤링 프로그램 사용법 정리

오픈소스를 활용해서 검색 키워드에 따른 이미지를 자동으로 크롤링하는 프로그램 활용법을 알려드리겠습니다. github.com/YoongiKim/AutoCrawler 위 사이트의 AutoCrawler 소스를 활용했습니다. 위의 사이트에서 다운로드하거나 git clone을 통해 본인 PC로 소스를 복사하시면 됩니다. Python 3.6 또는 크롬 브라우저가 설치되어있지 않은 분들은 먼저 설치를 하고 진행해주세요. 위의 프로그램을 이용하면, 구글, 네이버에서 검색할 때 찾을 수 있는 이미지들의 썸네일과 원본 이미지를 모두 다운로드할 수 있습니다. 검색할 키워드가 뭔지만 지정하면 됩니다. 어떻게 할 수 있는지 알려드리겠습니다. 1. 나의 크롬 브라우저 버전 확인 크롬 브라우저의 버전은 여기서 확인할 수 있습니다...

프로그래밍 2021.05.13

구글 Teachable Machine 사용법

초보자도 쉽게 인공지능을 사용할 수 있는 사이트를 소개해드리겠습니다. 구글에서 만든 인공지능 학습 사이트인 "teachable machine"의 화면입니다.(https://teachablemachine.withgoogle.com/train) 2021년 5월 기준, 이 사이트에서는 세가지의 모델을 제공하고 있습니다. 이미지 분류, 소리 분류, 신체 추정(pose estimation)이 있습니다. 이미지 분류 또는 소리 분류의 경우, 위의 사진처럼 분류하고 싶은 것들의 이름을 지정한 뒤(ex. 개, 고양이), 해당 이름에 맞는 이미지나 소리를 업로드 해주면 됩니다. 그리고 "Train Model"을 클릭하면 잠시 후에 학습이 완료되어 내가 원하는 분류 모델을 가질 수 있죠. 이 모델이 있으면 어떤 사진이 들..

프로그래밍 2021.05.02

최고의 가상환경, docker 개념 및 활용 방법 소개

오늘은 어디에나 쓸 수 있는 최고의 가상 환경인 docker를 소개하겠습니다. docker는 정말 어디에서나 사용할 수 있는 편리한 가상 환경입니다. 우리가 개발하는 컴퓨터에서 운영 서버 혹은 다른 컴퓨터로 소스를 옮겨서 실행할 때는 어떻게 하죠? 소스를 옮기고 실행 환경을 하나씩 맞추고 실행을 합니다. 하지만 이렇게 하는 과정도 굉장히 깁니다. 그리고 실행을 했을 때 내 컴퓨터에서는 발생하지 않았던 오류가 발생하기도 합니다. 왜 이런 현상이 발생할까요? 기반으로 돌아가는 운영 체제 또는 언어나 라이브러리의 버전 등 수많은 이유가 있습니다. 그렇다면 이 문제를 해결할 수는 없는 걸까요? 그 답은 docker를 사용하는 것입니다. 쉽게 설명하자면 docker는 어떤 운영 체제에서 어떤 라이브러리들을 미리 ..

프로그래밍 2021.04.21

Github 소개 및 사용법 / 첫 프로젝트 시작하기

Github를 통한 첫 프로젝트 시작하기 Github는 좋은 오픈소스들이 많이 있어서 개발할 때 참고하기 좋은 사이트입니다. 그럼 우리가 Git을 쓴다면 어떤 기능을 쓰게 되는 걸지를 소개해 보겠습니다. 여러분이 만약 이제 개발을 시작하는 초급자라면, 앞으로 회사에서 일할 때 Git이나 SVN같은 협업 도구를 많이 사용하게 될 것입니다. SVN은 옛날에 많이 썼는데 요즘은 거의 git을 씁니다. 반드시 github로 시작할 필요는 없습니다. gitlab이나 yona같은 프로그램을 써서 자체 저장소를 만들어 사용할 수도 있습니다. gitlab의 장점은 자동 배포가 가능하다는 것입니다. 구글에 좀 더 찾아보면 내용은 나오지만 간단히 요약해 드리겠습니다. gitlab-client를 배포할 서버에 적용해두고 m..

프로그래밍 2020.01.13

개발자를 위한 구글링하는 방법 및 구글링 팁 총정리

개발 경력 7년차의 구글 검색 팁 앞으로 개발자가 아닌 사람들이 돈 들이지 않고도 독학으로 개발을 잘 시작할 수 있도록 7년째 개발자를 하고 있는 입장에서의 팁들과 예제 소스들을 블로그에 담아보려고 합니다. 첫 번째 주제는 구글링입니다. 저의 경우는 구글링을 하는 목적이 두가지입니다. 1. 오류 찾기 2. 예제 찾기 1. 오류 찾기 "ZeroDivisionError: division by zero" 코드 실행 중 오류가 발생하면 항상 오류 메시지가 보여집니다. 개발 중 또는 다른 환경에 변경된 소스를 적용할 때도 오류가 발생할 수 있습니다. 위에서는 파이썬 언어를 사용했는데 Java나 swift 등 다른 언어들에서도 오류 발생 시 메시지가 출력됩니다. 만약 위와 같은 오류가 발생했다면, 어떻게 오류를 해..

프로그래밍 2020.01.08