분류 전체보기 850

SerialVersionUID가 뭐냐?

가끔 노랑밑줄이 쳐질때가 있다. 이게 무엇인가. 유일한 클래스임을 보장해주기 위한 ID임이다. 클래스는 때때로 필요한 필드가 추가될수도 있으며, 이에 따라 예전에 만들어놓은 클래스와 다른 형태를 가질수 있다. 그럼에도 불구하고 이 두개는 같은것이라고 봐야할 필요가 있으며 이럴때 구분자로 사용할 수 있다. 예를들어 기존에 있던 Person 클래스에 간지남 정도를 표시해주기위해 최근 ganziness 필드를 추가했다고 치자. 예전에 만들어 놓은 Person은 간지와 관련된 필드가 없기 때문에 컴파일러는 이 두개의 객체를 다르게 볼 수 있다. 그렇게 된다면 직렬화를 복원하는 과정에서 두개의 이질감 때문에 컴퓨러는 InvalidClassException을 뱉어낼수 있다. 즉, serialize된 데이터를 다시 ..

0-1 배낭문제 (도둑놈 짐싸기 문제)

배낭문제는 도둑놈 털어가기 알고리즘과 같다. 배낭이 20Kg짜리를 가져갔는데 이게 왠걸 방에 뭐 비싸보이는게 덕지덕지 있다. 다만 무게와 가치를 잘 따져서 가져가야하는데, 보통은 무게대비 가치가 많은걸 가져가면 되겠지만 만약 이게 100Kg 짜리 다이아몬드라면 잘라서 가져가지는 못하므로 포기한다. 고속터미널에서 파는 싸구려 가방이라 20Kg가 넘으면 찢어진다고 가정하다. 한번 이렇게 있다고 생각해보자. 부피 : 4 5 12 4 100 2 가치 : 7 10 2 4 100 6 문제는 뭔가 비싸보이는것부터 넣어도 안되고 무게대비 비싼걸을 넣어서도 별로 답이 되지 않는다는 것이다. 이럴때는 나머지 공간에 물건들을 싸서 얻을 수 있는 최대의 가치를 리턴하는 함수를 설계한다. 물건을 가져가지 않는경우는 다음과 같다..

Microsoft Face API를 이용한 얼굴 세부 인식기 개발

어쨌든 요기서 SDK를 다운로드 받을수 있다.어떻게 얼굴을 인식하는 기술을 만드느냐 하는것은 박사들이 알아서 잘 할것이고 본인도 시켜주면 굉장히 잘할수있는데 기회가 나지 않기때문에 라이브러리만 가져다가 응용어플리케이션을 만든다. https://www.microsoft.com/cognitive-services/en-us/face-api 위에다가 그냥 넣으면 사실 그게 답이지만, 문제는 여러 이미지를 때려박고 거기에서 나오는 데이터를 대량으로 처리하고 싶기때문에 그게 문제이다. 대강의 프로그램은 복잡하지 않다. 솔직히 그냥 홈페이지에서 각종 얼굴을 뗘다가 붙여서 수작업으로 작업할수도 있는데, 아무래도 너무 느리다. 굉장히 귀찮기 때문에 C#을 이용해서 어플리케이션을 한번 만들어 봤다. 레이아웃은 아무래도 좋..

Microsoft Face API 주요부분

중요한 부분은 다음과 같다. 서버와 연결하는 부분 var faceServiceClient = new FaceServiceClient(subscriptionKey); face를 추출하는 부분 Contract.Face[] faces = await faceServiceClient.DetectAsync(fileStream, false, true, new FaceAttributeType[] { FaceAttributeType.Gender, FaceAttributeType.Age, FaceAttributeType.Smile, FaceAttributeType.Glasses }); 돌아가면서 객체 collection에 넣는 모습 foreach (var face in faces) { DetectedFaces.Add(ne..