no image
PhotoPrism - 개인 사진 클라우드, 사진 관리 플랫폼
최근 취미로 카메라를 시작해 사진을 기록하고 있다.그런데 촬영한 사진 중 몇 장만 공유하는 것이 아쉬워 사진을 공유할 수 있는 오픈소스를 찾아보았다.PhotoPrism오픈소스 사진 관리 애플리케이션으로, 사진/비디오를 자체 서버에 호스팅 하면서 자동 태깅, 얼굴 인식, 필터 검색 등을 활용해 사진 라이브러리를 정리하고 탐색할 수 있다.https://github.com/photoprism/photoprism GitHub - photoprism/photoprism: AI-Powered Photos App for the Decentralized Web 🌈💎✨AI-Powered Photos App for the Decentralized Web 🌈💎✨ - photoprism/photoprismgithub...
2025.10.03
SW
no image
MediaPipe Face Landmark 3D Viewer
MediaPipe Face LandmarkMediaPipe의 Face Detection 모델을 사용하면, 사진과 같이 총 468개의 포인트가 반환된다.ML Kit의 Face Mesh Detection 역시 MediaPipe 모델을 기반으로 동작한다.468개의 얼굴 랜드마크가 보인다면, MediaPipe 모델이라 생각해도 무방하다.메쉬에서 특정 폴리곤 영역을 활용하려고 할 때 불편함이 있다.얼굴을 보며 랜드마크 번호를 찾는 것도 쉽지 않고,번호를 보고 얼굴 위치를 짚어내는 일은 더욱 까다롭다. MediaPipe Landmark 3D Viewer그래서 MediaPipe Face Landmark를 시각화한 간단한 사이트를 만들었다. https://cornpip.github.io/mediapipe_landmar..
2025.08.28
no image
백준 1629번 문제 풀이(python)
접근A, B, C 모두 32비트 int 범위(약 21억)까지 표현할 수 있다. 문제를 그대로 접근해 보면,X = (A ** B) % C1. A를 21억 번 곱해야 하므로 시간복잡도가 안된다.2. 21억의 거듭제곱 과정에 오버플로우가 고려된다. 풀이해결해 보자.1. (지수 법칙 활용) 지수를 쪼개 시행 횟수를 줄인다.A**30 = (A**15)**2A**15 = (A**7)**2 * AA**7 = (A**3)**2 * AA**3 = (A**1)**2 * AA**1 = A 보통 매 단계마다 값이 절반으로 줄어들 때,마지막까지 도달하는 데 필요한 시행 횟수는 로그 시간 복잡도 O(log N)로 표현한다.100 → 50 → 25 → 12 → 6 → 3 → 1log₂100 ≈ 6.64 1까지 내려가는 각 단계마다..
2025.08.25
no image
[TokenMeter] Local ChatGPT (25.08)
TokenMeterhttps://github.com/cornpip/TokenMeter GitHub - cornpip/TokenMeter: Local ChatGPTLocal ChatGPT. Contribute to cornpip/TokenMeter development by creating an account on GitHub.github.comFeature- crawling & summaryGPT API에 A링크를 분석해 달라고 하면, 링크 텍스트에서 유추한 정보만을 바탕으로 엉뚱한 답변을 내놓는다. 그래서 링크가 포함된 질문의 경우, 링크를 크롤링하고 요약한 뒤, 이 요약을 질문에 덧붙여 API에 전달하는 기능을 추가했다.요약 모델은 facebook/bart-large-cnn 을 사용한다. 설정에서 O..
2025.08.05
no image
[TokenMeter] Local ChatGPT (25.07)
Token-Meterhttps://github.com/cornpip/TokenMeter GitHub - cornpip/TokenMeter: Local ChatGPTLocal ChatGPT. Contribute to cornpip/TokenMeter development by creating an account on GitHub.github.com 주요 업데이트- System Instructioninstruction prompt 는 msg history에 role: system 으로 항상 포함되며, 전반적인 응답 지침을 가이드한다. - Create Edit Image API, SAM2 Maskhttps://platform.openai.com/docs/api-reference/images/createEdit..
2025.07.06
no image
[TokenMeter] 나만의 ChatGPT
TokenMeter 소개(LLM을 로컬에서 직접 구동하지 않습니다.)TokenMeter는 부담스러운 구독 비용을 줄이고, 내 데이터가 학습에 활용되는 것을 방지하기 위해 OpenAI API를 로컬에서 활용하여 ChatGPT 웹 서비스를 사용하지 않고도 자연스러운 대화와 기록이 가능하도록 만든 도구입니다. 따라서 TokenMeter를 사용하려면 크레딧이 충전된 OpenAI API Key가 필요합니다. 모든 설정과 대화 내역은 로컬 환경에 저장됩니다. https://github.com/cornpip/TokenMeter GitHub - cornpip/TokenMeter: Local ChatGPTLocal ChatGPT. Contribute to cornpip/TokenMeter development by cr..
2025.04.10
no image
스트라센 알고리즘(Strassen Algorithm) - 행렬곱
기본 행렬곱// pseudocode(의사코드)for i from 1 to n: // A의 행(1부터 n까지) for j from 1 to n: // B의 열(1부터 n까지) C[i][j] = 0 // C의 각 원소 초기화 for k from 1 to n: // A의 열과 B의 행(k는 1부터 n까지) C[i][j] = C[i][j] + A[i][k] * B[k][j] end for end for end for행렬곱의 기본 연산은 중첩문이 3개로 O(n^3) 시간복잡도가 필요하다. 스트라센(Strassen) 행..
2025.03.02
no image
Sorting Algorithm
Sorting algorithm 모음Insertion Sort (삽입 정렬)의사 코드 구현 코드public class InsertionSort { static void insertionSort(int[] input) { int count = 0; // 반복 도는 횟수 확인 for (int j = 1; j -1 && input[i] > key) { count++; input[i + 1] = input[i]; i -= 1; } input[i + 1] = key; } System.out.println(count); } pub..
2025.02.24
no image
[TokenMeter] 개인용(local) ChatGPT 만들기
TokenMeter이전 포스팅에선 SaveChat 으로 프로젝트를 기획했는데 TokenMeter 로 이름을 바꿨다.https://github.com/cornpip/TokenMeter GitHub - cornpip/TokenMeter: Local ChatGPTLocal ChatGPT. Contribute to cornpip/TokenMeter development by creating an account on GitHub.github.com지금은 Nodejs, npm이 설치된 환경에서 소스 다운받고 npm run start 를 실행하면 사용할 수 있고,다음 추가 feature로, Jupyter Lab(Docker)처럼 TokenMeter를 실행할 수 있도록 Docker 배포를 구상하고 있다. + docke..
2025.02.21