개발

파이썬의 메서드 결정 순서(Method Resolution Order)와 프로토콜에 의한 일관성 유지
파이썬은 객체 지향 패러다임을 구현할 수 있는 기능을 제공한다(파이썬에 OOP언어라는 것보단 이게 더 적절하다). 객체의 멤버에 접근할 때 "instance.member" 처럼 점(".")을 이용하는 전형적인 문법을 가지고 있고 이는 getattr함수에 의해 구현된다. >>> help(getattr) Help on built-in function getattr in module __builtin__: getattr(...) getattr(object, name[, default]) -> value Get a named attribute from an object; getattr(x, 'y') is equivalent to x.y. When a default argument is given, it is r..
파이썬의 루프를 더 빠르게 하는 법?
파이썬 코드를 작성하면서 제일 자주 작성하게 되는 코드는 어떤 코드일까? 여러 개가 있겠지만 아래 코드처럼 for-loop 안에서 리스트에 item을 append하는 로직이 후보에서 빠질 수 없을 것이다. newlist = [] for word in oldlist: newlist.append(word.upper()) 파이썬 공식 문서(https://wiki.python.org/moin/PythonSpeed/PerformanceTips#Loops)에서는 loop를 최적화하는 팁을 알려준다. Version Time (seconds) Basic loop 3.47 Eliminate dots 2.45 Local variable & no dots 1.79 Using map function 0.54 위 속도 비교에서..
[리뷰] 3D HPE에서 Length-Direction Decomposition이 별로 선호되지 않는 이유
2020년도 CVPR에 accepted되어 나름 흥미를 끌었던 3D Human Pose Estimation 분야 페이퍼가 하나 있다. 바로 Deep Kinematics Analysis for Monocular 3D Human Pose Estimation이다. 해당 페이퍼가 supplementary를 제공하지 않는 이유를 모르겠었는데, 늦게서야 깨달아서(생각해보니 너무 늦게 깨달았다..) 이에 대해 얘기해보려 한다. 일단 2D Pose Estimation과는 다르게 3D 영역에서는 인체를 모델링하는 것이 꽤 유효한 일이다. 그리고 가장 쉽게 접근할 수 있는 것이 바로 위에서 얘기한 Kinematics Analysis이다. 뼈는 고정된 길이를 가지고 있고, 실제로 parent joint를 기준으로 direc..
CVPR 2022 3D Human Pose Estimation 관련 Paper 모음
차근차근 공부할 목록들. 일부는 정리해서 블로그에 올려보겠습니다. 주로 Monocular Video 환경의 페이퍼들을 모았습니다. Estimating Egocentric 3D Human Pose in the Wild with External Weak Supervision MHFormer: Multi-Hypothesis Transformer for 3D Human Pose Estimation Uncertainty-Aware Adaptation for Self-Supervised 3D Human Pose Estimation Generalizable Human Pose Triangulation Ray3D: ray-based 3D human pose estimation for monocular absolute ..
![[백준] 15829 Hashing](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdvOha4%2FbtrJgxO3rLM%2F1YBc2JmiYoB10YnvCkvZzk%2Fimg.png)
[백준] 15829 Hashing
해싱을 적용하는 문제로, 솔직히 쉬운 축에 속하는 문제이다. 이 문제 자체에서만큼은 자료형만 무작정 키워도 100점을 맞을 수 있고, 인터넷에 찾아보면 모듈러 연산의 성질로부터 정말 쉽게 푸는 방법들이 많다. 나도 처음엔 50점만 맞아서 뭐지 하고 온갖 방법으로 시도했었고, 그중에서 인터넷에 찾아봐도 딱히 나오지 않은 방법이 하나 있어서 포스팅해보려고 한다. 이 방법은 솔직히 말하면 쓸데없이 복잡하니 심심한 사람이 아니라면 다른 블로그에서 풀이법을 찾아보길 바란다. hash값이 $(\sum_0^{L-1}{a_ir^i})\,\bmod\,M$인데, 문제에서 주어진 $L,\,r$값으로 무작정 계산하면 일반적인 int 자료형의 크기를 넘어선다. 더 큰 자료형을 써도 되겠지만, 만약 $L$이 매우 커진다면 제대로..

모션캡쳐 파이썬 구현
한 2년 전 정도인가, 어쩌다보니 모션캡쳐를 시작하게 되었습니다. 솔직히 공부해서 구현하거나.. 뭐 이미 있는 구현체를 쓰거나... 상용 소프트웨어를 하거나... 하면 되지 않을까? 그런 생각이었습니다. 근데 찾아보니 상용 소프트웨어는 너무 비쌌고, 이미 있는 구현체들은 제가 원하는 것들이 아니었습니다. 딱 제 상황에 맞는 모션캡쳐를 하고싶었는데(모션캡쳐를 하는 방법은 꽤 다양합니다), 마땅치 않으니 내가 직접 공부해서 만들어야겠다고 생각했습니다. 결론적으로, 아마 1년 전 정도에 성공했습니다. 학교 다닐 거 다니고 직장 다닐 거 다니면서 하다보니 오래 걸렸지요. 근데 시간이 없었다거나 제가 이를 메인 프로젝트로 삼지 않았다거나 하는 것이 이유가 될 수 있는데, 이 프로젝트가 오래 걸린 데에는 관련 자료..
파이썬 카메라 캘리브레이션 구현
제 깃허브에 모션캡쳐 방법론에 대해 다루는 레포지토리가 있는데, 그 안에 잘 정리하기 쉽지 않아 그 내용 중 일부를 빼와 블로그에 옮깁니다. 카메라 캘리브레이션을 검색해보면 거의 대부분 어떤 OpenCV와 같이 어떤 툴을 어떻게 쓰는지에 대한 정보만 있고, 이를 실제로 구현한 경우는 거의 없습니다. 나쁘다는 건 아니지만 그래도 파이썬으로 캘리브레이션을 구현해보는 것 정도는 나름 의미가 있을 것 같아 시도해보았습니다. 아래부터는 깃허브에서 옮겨온 글입니다. 참조문헌은 글의 맨 마지막에 있습니다. OpenCV에서는 calibrateCamera라는 매우 쉽고 편한 함수를 제공하므로, 관련 튜토리얼을 참고하기 바랍니다. OpenCV는 매우 훌륭한 툴이기에, 괜스레 이론을 이해하겠다고 소중한 인생을 낭비하는 행위..

Python 하지 마세요!
갑자기..? 나는 Python을 정말 좋아한다! 내가 왜 Python을 좋아하는지는 그 역사가 3년 전부터 시작하며, 사실 그 이유가 인터넷 검색 조금만 하면 나오는 내용들과 크게 다르지 않다. 그러므로 이 부분은 스킵하고, 왜 Python을 좋아한다고 말하는 사람이 "Python 하지 마세요!"라는 제목의 글을 쓰는 것일까. 미리보기 설명 텍스트에 적혀있듯, 본문은 데이터 처리와 분석에 관한 관점에서 접근한다. 그리고 "데이터 분석을 공부하려는 비전공생"을 대상으로 하는 글이다. 작금의 세태 다들 아실 거다. 몇 년 전부터 아직까지도, 데이터가 어쩌고 파이썬이 어쩌고 하는 단기 특강은 회사와 대학에서 자주 열리고 있다. 온라인 강의 판매 업체의 광고는 지겨울 정도다. 2년 전에 특허 관련 교육을 하시는..