-
Embedding model이란 + CLIP, Stable diffusion2025.02.224
임베딩(Embedding)이란? 어떤 “이산적(discrete 구분되는)”인 객체(예: 단어, 문장, 이미지, 그래프 상의 노드 등)를 연속적인 벡터 공간으로 변환(매핑)하는 방법. 이산적인 데이터(예: ‘단어’, ‘문서’, ‘이미지’, ‘엔티티’)를 숫자 벡터로 표현해주기 때문에, 컴퓨터가 수학적으로 취급하거나 계산하기 쉬워짐. 이때 벡터 간의 거리나 방향을 통해 유사성, 문맥, 의미 관계 등을 어느 정도 추론할 수 있게 됨. * 이미지와 텍스트는 다른 종류의 정보지만, CLIP 모델 같은 것으로 동시에 학습 시킬 경우 벡터가 가까워 질 수 있음 "Embedding고차원 공간에서 단어나 이미지와 같은 데이터를 수학적으로 표현한 벡터뭉치. 데이터 처리 시 각 데이터에 일대일로 대응하는 벡터를 만들어 이..
Blockiness, Block Noise, Artifacts(Artefacts)2025.01.022자동 합성 코드 작업하면서 블록 현상이 발생하여 이유를 찾아보는 중 . JPEG 이미지의 복사, 합성, 재저장 과정에서 발생하는블록 현상과 블록 노이즈는 주로 반복적인 압축과 해제 과정에서 누적되는 손실 때문.이를 최소화하기 위해서는 비손실 압축 형식을 사용하거나,압축률을 조절하고, 가능한 한 압축 단계를 줄이는 것이 중요함.또한, 최신의 효율적인 압축 코덱을 활용하는 것도 좋은 방법.https://en.wikipedia.org/wiki/JPEG JPEG 압축 과정의 이해 JPEG 이미지 압축의 기본적인 과정 - 손실 압축 방식, 이미지 데이터를 압축하면서 일부 정보가 손실됨. 색 공간 변환(Color Space Conversion):RGB 색 공간에서 YCbCr 색 공간으로 변환하여 인간의 눈에 ..
004 몇 개의 의상 조합이 가능한지 찾기2024.10.0111패션 마을의 옷장 마법사옛날 옛적, 패션 마을이라는 곳에 아리라는 이름의 옷장 마법사가 살고 있었습니다. 아리는 마을 사람들에게 멋진 옷을 조합해주는 특별한 능력을 가지고 있었죠.어느 날, 마을에 새로운 옷들이 도착했습니다. 아리는 이 옷들을 잘 정리하고, 마을 사람들에게 다양한 스타일을 제안하기로 마음먹었습니다. 옷들은 각각 종류가 있었는데, 예를 들어 "노란 모자"는 머리장식, "파란 선글라스"는 액세서리, "초록 터번"도 머리장식에 속했죠.아리는 먼저 각 종류별로 옷의 개수를 세기 시작했습니다. 머리장식에는 노란 모자와 초록 터번, 액세서리에는 파란 선글라스가 있었습니다. 그러고 나서, 각 종류별로 하나를 선택하거나 선택하지 않는 경우의 수를 계산했습니다. 예를 들어, 머리장식은 2가지 선택지(노란..
003 소수 찾기2024.09.294문제 출처 : https://youtu.be/m3kCKV8oc1g?si=WTrr9omSekICyslD 한 자리 숫자가 적힌 종이 조각이 흩어져 있습니다. 흩어진 종이조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. Loop 활용 1. 숫자 조합 2. 소수가 아닌 수 제거 : 에라토스테네스의 체 사용3. permutation, map, set 등을 활용하여 손쉽게 확인 from itertools import permutationsdef solution(numbers): prime_set = set() # 1. Make all possible number combinations from the given numbers for i in range(len(numbers)): ..
002 전화번호 목록2024.09.27전화번호에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인해야 함 접두어이면 False, 아니면 True 전화번호부에 적힌 전화번호를 담은 배열phone_book이 solution 함수의 매개 변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 False를 그렇지 않으면 True를 return 하도록 solution 함수를 작성해 주세요. : 왜 하필이면 전화번호 목록이지? 접두어가 있는지 확인할 일이 뭐가 있지.. 비교할 첫 번째 전화번호를 선택하고, 비교할 두 번째 전화번호를 선택하고, startswith 함수를 사용해 서로가 서로의 접두어인지 확인한다. def solution(phone_book): # 1. Sort the phone book ..
CNN, Convolution, Kernel, Pooling 이미지들2024.09.256이런 그림들 너무 좋다..🥰 합성곱(合成-), 또는 콘벌루션(convolution)은 하나의 함수와 또 다른 함수를 반전 이동한 값을 곱한 다음, 구간에 대해 적분하여 새로운 함수를 구하는 수학 연산자 Pooling으로 Overfitting을 방지한다고 한다. 출처 : https://hobinjeong.medium.com/cnn%EC%97%90%EC%84%9C-pooling%EC%9D%B4%EB%9E%80-c4e01aa83c83 출처: https://brunch.co.kr/@gdhan/7 출처: https://www.analyticsvidhya.com/blog/2022/01/convolutional-neural-network-an-overview/..
001 Did not finish2024.09.24완주하지 못한 한 선수를 찾아야 한다. 마라톤에 참여한 선수들의 이름이 담긴 배열이 주어질 때, 완주하지 못한 선수의 이름을 반환하도록 soloution 함수를 작성하자 마라톤 경기에 참여한 선수의 수는 1명 이상, 100,000명 이하이다. completion의 길이는 participant의 길이보다 1 작다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있다. 참가자 중에는 동명 이인이 있을 수 있다. participantcompletionreturnc, a, bb, ca a를 찾으시오. 1. sorting / loop을 활용2. hash를 활용3. collections.Counter 활용 1. sorting 두 리스트를 정렬하여 completion list의 lengt..
Ubuntu에 Apache 앱 서버 설치2024.08.022집에 있는 안 쓰는 컴이 있어서 우분투 서버로 만들어 연습용 웹페이지를 띄워볼까 싶었다동네 컴퓨터 수리점에서 3만원짜리 고물 모니터랑 랜케이블 사옴 많은 분들이 정보를 상세하게 공유해 주셔서 새삼 감동약간의 오류와 함께 순조롭게 진행하고 있지만, 아직 개념도 안 잡혔고 몇 번 더 해봐야 이해할 수 있을 것 같다아래는 도움 된 링크들 목표는 Gpt보단 직접 검색으로 울집 컴에 리눅스 서버 구축, 웹페이지 플라스크로 띄우고 CRUD 구현 이제 DB 셋팅하고 웹앱만 만들면 됨 (? 주말까지 할 수 있을까..)아직까진 뭐가 뭔지 몰라도 재밌음 그런데 오래된 컴이긴 하지만 멀쩡한 걸 버릴 뻔 했다 ;램 문제인지 슬롯 문제인지2번째 램 슬롯을 비우니까굉음도 안 나고 뭐든지 된다 ㅋㅋ라즈베리파이 귀여워서 갖고 싶..
struct 구조체2024.07.08* 글 아래의 링크를 들으며 기록한 내용입니다. 링크에서 자세한 내용을 확인하세요. 구조체는 C, C++ 언어 문법 전체에서 가장 중요한 개념객체지향 언어인 C++은 구조체에서 확장된 클래스를 기반으로 문법이 추가된 것구조체를 잘 활용하면 가독성이 좋고 효율적인 프로그램이 가능하며, 실무 프로젝트에서 많이 사용함구조체를 이용하면 내가 원하는 자료형을 만들어 사용할 수 있음 프로그램이 깔끔하고 편하다고 계속 말씀하심 변수 : 단독주택 ㅋint x; // 4평(byte) 짜리 단독주택 1가구 정수 int, 실수 double, 문자 char, 문자열 char *, 문자열 char 배열 배열 : 같은 평수로 구성된 아파트 ㅋㅋㅋint x[5]; // 4평짜리 5가구 동일한 형(type)의 데이터들을 하나의..
Trail of 20242024.05.022024. 09. 16.휴가 때 집에서 빡세게 놀고 나서 복귀해서 넘 피곤해서 좀 후회했다 ㅎㅎ한 달 동안 바쁘기도 하고 넘 피곤한데, 압력만 오지게 받고 보람이나 배움이 없었던 것은 아니지만 알 수 있는 일과 할 수 있는 일에 한계가 느껴져서 아쉬웠다. 이번 명절에는 좀 쉬고, 지속적으로 스스로를 도울 수 있는 일들을 시작하자고 마음 먹음그대로 실행되지 않는 계획은 싫지만, 될 때까지 시도해야 하는 것들이 있으니.. 올해 이제 3개월 밖에 안 남았다 아껴 쓰자 2024. 08. 07.열심히 일한 보람도 좀 있고, 하고 싶었던 일을 하는 휴가라 즐겁다.. 얼마만의 정신적 쾌적함인지 ㅠㅠ 기쁘다 그런데 푹 빠져서 뭘 하기에 3~4일은 좀 짧은 느낌이 든다어쩌면 지금 같은 방식으로는 한 달, 일 년도 ..
SQL injection 예방2024.04.01유튭 동영상 보다가 무서워서 메모하고 감 ㅊㅊ https://youtu.be/FoZ2cucLiDs?si=MAJzTlaCBnEwXEiu 1. Parameterized query 이렇게 쓰면 큰일남ㅜㅜ pool.query('SELECT * FROM users WHERE id=' + 유저가보낸거); pool.execute('SELECT * FROM users WHERE id=' + 유저가보낸거); 이렇게 써야 됨 pool.query('SELECT * FROM users WHERE id=?', [유저가보낸거]); pool.execute('SELECT * FROM users WHERE id=?', [유저가보낸거]); 2. Stored procedure 프로시저 문법, 이런 방법도 있다. 코드 양이 많아지는 단점...
PASCAL VOC(PASCAL Visual Object Classes Challenge)2024.03.17이미지 인식 Image recognition 나무라는 추상적인 개념 선택적 주의 집중 selective attention 문맥 context 종합적 이해 '픽셀을 읽어들여 어떻게 문맥 정보를 추출하고 이들을 어떻게 종합하여 이해할 것인가' '인간이 이미지를 인식하는 매커니즘을 밝혀내고, 이를 기계로 하여금 모방하도록 해 보자' 요인 Feature를 정의하여 사용하고, 이들을 종합하고 이해하도록 하기 위해 Learning model과 Learning algorithm을 사용하여 이를 머신 러닝 차원으로 해결하고자 하였다. 이런 이미지 인식 시도를 통해 자신감을 얻은 공학자들은, 기계의 이미지 인식 성능의 Benchmark로 삼을 수 있는 데이터셋들을 만들기 시작함. 그 중 초창기 이미지 인식 대회 중 가장..
C 배열 Array, 함수 Function2024.03.11Array 배열 Array는 이런 식으로. 인덱스로 호출할 수 있다. 인덱스를 사용해 값을 수정할 수 있다. 10개의 숫자가 들어가는 Array에 1번 인덱스로 80 넣고 출력할 수 있다. 그런데 이렇게 넣으면 이런 8이 나옴 내가 넣은 것이 아님.. 그냥 그 메모리 주소에 우연히 놓여져 있던 값이 불려온 것이라 함.. (쓰레기 값 garbage value) 암튼 0번 인덱스에도 값을 넣어주면 정상적으로 출력이 됨. 지금 Array에 데이터 타입을 정해주고, [] 대괄호 안에 들어갈 숫자로 크기도 지정해준 것임 배열을 선언할 때 크기를 정해주면 좋은 점은 1. 코드 읽는 사람에게 배열의 크기와 의도를 즉시 알려줘서 코드 가독성을 높여주고, 2. 컴파일러가 배열 크기를 기반으로 메모리 할당량을 결정하고, ..
C Calculator, Mad Libs Game2024.02.29간단한 Calculator 하지만 이걸로는 소수를 처리할 수 없으니 변수를 double로 바꿔주고 scanf()에서는 %lf printf()에서는 %f로 변경해 줌 하지만 문자열 입력하면 황급히 끝내버림 Building a Mad Libs Game [20]처럼 감당해야 하는 메모리의 양 정해준다.. scanf()에서 문자열에는 변수 앞에 &가 안 필요함 그런데 역시 여기서도 이름 넣는데 띄어쓰기 넣어서 두 가지 쓰면 하나밖에 안 나온다. 그래서 이런 방법을 씀 여기서 만약 Zendaya만 입력하고 엔터를 클릭하면 프로그램이 다음 글자열을 입력받기를 기다리고 있는 것을 볼 수 있다. 기본적으로 C는 사용자가 입력하는 내용에 대해 매우 구체적으로 설명하도록 강제한다고 한다.
C 사용자 입력 받기 Getting user input2024.02.28scanf("형식지정자", &변수명); 사용자가 입력한 숫자를 받아서 변수에 저장해준다. double의 경우 char 문자열의 경우 변수 옆에 대괄호를 붙이고 안에 숫자를 넣어 저장할 수 있는 메모리의 크기를 정한다. 그런데 scanf는 이렇게 문자열을 띄어 쓸 경우, 앞의 것만 접수하심 그래서 fgets(변수명, 길이, 스트림);을 사용해 데이터를 입력받는다. stream 스트림은 데이터의 흐름을 추상화한 개념으로 데이터가 연속적으로 이동하는 경로나 채널을 의미한다고 함 스트림을 사용함으로써 데이터 처리 과정을 단순화하고 일관성을 유지할 수 있다고 함 추상화: 스트림은 데이터의 실제 저장 매체(예: 파일, 메모리, 네트워크 연결)로부터 데이터를 읽고 쓰는 방법을 추상화합니다. 이로 인해, 개발자는 데이..
C의 상수2024.02.262Constants in C 이 프로그램을 실행하면 정수 5를 출력한 후 새로 입력해 준 8의 출력을 수행한다. 내 컴 왜 이렇게 느리지 하지만 여기서 num을 변경되지 않는 값으로 만들고 싶다면 const 를 붙여준다. num 변수에 const를 붙여 상수가 되었기 때문에 빌드 · 실행 버튼을 누르면 오류나고 실행이 되지 않는다. 9번째 줄 앞에 빨간색 오류 표시가 뜨고 'num'은 읽기 전용 변수로 할당됨 이라는 오류 메시지가 뜬다. 그래서 위에는 FAV_NUM이라는 상수로, 아래는 num이라는 변수로 변경해주면 더이상 같은 변수는 아니지만 오류도 나지 않는다. 아무튼 상수는 아래 열에서 변화시킬 수 없음 그리고 상수는 보통 대문자와 _로 변수를 선언해서 만드는데, 개발자들이 보고 아 상수구나 싶게 그..
Bounding box, Labeling 책갈피2024.02.23Roboflow https://blog.roboflow.com/how-to-draw-a-bounding-box-label-python/ How to Draw a Bounding Box Prediction Label with Python In this article, we show how to use the cv2 library to draw bounding box prediction labels in Python. blog.roboflow.com 자동 라벨링 및 딥러닝 플랫폼 서비스를 제공하는 곳임 ♣ Here is the code we'll need to draw our bounding boxes and add labels above each bounding box: import cv2 predicti..
C 형식지정자, 함수, 연산자2024.02.22Format Specifier 형식지정자 특정 데이터 유형의 값을 출력할 때 형식을 지정해야 한다. 이 때 사용해야 하는 문자, 또는 문자열 %d: 10진 정수를 출력할 때 사용 %f: 부동 소수점 수를 출력할 때 사용 %s: 문자열을 출력할 때 사용 %c: 문자 하나 출력할 때 사용 #include int main() { int num = 42; float pi = 3.14; char letter = 'A'; printf("정수: %d\n", num); printf("실수: %f\n", pi); printf("문자: %c\n", letter); return 0; } d 를 보면 integer를 출력하고 싶어한다는 걸 알 수 있다는~ 연속 사용 시 변수 넣기도 당연 가능 Number Types 소숫점이 ..
C Code::Blocks 설치 및 Hello world2024.02.202* 글이 좀 많아지면 카테고리 만들어서 이동시킬 계획 Code::Blocks install 코드블록은 C, C++, 및 Fortran의 통합개발환경(IDE) 오픈소스이다. C언어의 컴파일러인 GCC (GNU Compiler Collection)를 기본적으로 지원한다 설정 딱히 손대는 것 없이 그대로 설치함 Console application create : This is like there's a basic C project that you can run on your computer. int main(){}에서 main은 Method라고 하시고, printf는 함수라고 하심 (지피티한테 물어보니 객체지향 프로그래밍에서 주로 메소드라고 부르고 절차적 프로그래밍이나 함수형 프로그래밍에서는 함수라고 한다는데..
정처기 공부 중2024.02.17다양한 교재로 내용 익히는 거 괜찮은 듯 🥪 Software 소프트웨어 상품성, 복잡성, 변경 가능성, 복제성 System 시스템 기본요소 : 입력 처리 출력 제어 피드백 Software Crisis 소프트웨어 위기 - 개발비용 증가 - 개발 기간 지연 - 개발 인력 부족 인건비 상승 - 성능 및 신뢰성 부족 - 유지보수의 어려움과 유지보수의 엄청 큰 비용 Software Engineering 소프트웨어 공학 - 현대적인 프로그래밍 기술 - 신뢰성 높아야 - 사용 편리성, 유지보수성 높아야 - 지속적인 검증 시행 소프트웨어 공학 기본원칙 - 품질 높은 Software 상품 개발 - 지속적인 검증 시행 - 결과에 대한 명확한 기록 유지 Software Reengineering 소프트웨어 재공학 - Soft..