PORTFOLIO

Selected work in Vision AI and AI.

Turning real-world visual data into structured knowledge.

Teaching Go, now produced with AI.

Two Go courses on Inflearn (33 lessons, 9 h 19 min). The new course is built from a single script into Korean and English editions, narrated in my own voice cloned with ElevenLabs.

Courses

  1. 2022.12.02

    Really Easy Go for Beginners

    Inflearn · 17 lessons · 4 h 21 min

    Published View on Inflearn
  2. 2023.04.13

    Really Easy Go: Intermediate

    Inflearn · 16 lessons · 4 h 58 min

    Published View on Inflearn
  3. —

    Building Fast Go Programs

    Korean · English · AI production pipeline

    In production
  4. —

    The next course starts right after

    Next

AI Lecture Pipeline

One Markdown script becomes a finished episode. Every line is checked before any paid voice synthesis; the narration is my own voice cloned with ElevenLabs, and the slides, coding practice and motion graphics are timed to it.

  1. Script Markdown
  2. Script Check before paid TTS
  3. Narration · My Voice ElevenLabs PVC · Multilingual v2
    • SlidesManim · red pen
    • Coding Practicecode-server · Go Playground
    • Motion GraphicsBlender
  4. Episode KO · EN

DemoSame scene, two languages

The same page from episode 1, built from one script. Both narrations are my cloned voice.

Korean
English

An AI archive that cross-checks itself.

MediaVault ingests documents and images, extracts meaningful information with multiple AI models, and cross-checks the results to build a reliable, searchable archive.

Document Analysis

  1. Upload
  2. Deduplication xxHash64 → BLAKE3
  3. Format Conversion LibreOffice → PDF
  4. AI Analysis
    • Claude
    • Gemini
    • Qwen3-VL
    • Gemma4
  5. Search Full-Text Search · Tag Filter

Image Analysis

  1. Upload
  2. Deduplication xxHash64 → BLAKE3 · dHash → pHash
  3. Metadata EXIF
    • Person DetectionYOLOv8-seg
    • Age & GenderMiVOLO → InsightFace
    • Face EmbeddingAdaFace
    • Image EmbeddingSigLIP SO400M
  4. Image Description
    • Step3-VL
    • Qwen3-VL
    • Gemma4
  5. Cross-check & Merge
    • Claude
    • Gemini
    • Gemma4
  6. Search Full-Text · Vector · Text-to-Image
  • Dedicated model
  • Swappable model

Models in use

StageModelRole
Document analysisClaude / Gemini / Qwen3-VL / Gemma4Document understanding and information extraction
Image analysis (detection)YOLOv8-segPerson detection and segmentation
Image analysis (face)MiVOLO / InsightFace / AdaFaceAge, gender and face embedding
Image analysis (embedding)SigLIP SO400MImage embedding for similarity search
Image descriptionStep3-VL / Qwen3-VL / Gemma4Generate detailed image descriptions
Cross-check & mergeClaude / Gemini / Gemma4Keep only answers agreed by two or more models

From product pages to searchable fashion data.

FashionEngine converts e-commerce product pages into structured fashion data, using computer vision to segment, classify, and analyze garments at scale.

Ingest

Stores the information and images provided to us, then deduplicates and indexes them for processing.

  1. Provided Info & Images Info · Images
  2. Deduplication Image hash
  3. Index PostgreSQL
  4. Processing Queue Task queue
Product detail page

DemoDetail Page Segmentation

A product detail page is not a stack of photos. It is one long image where a designer has blended photos, text and background decoration together. It looks like you could just cut along the white gaps, but backgrounds run on, text sits on top of photos, and designers deliberately fade edges so sections flow into each other. On top of that, JPEG compression noise scatters faint speckles across what should be clean white space, so simple rules break.

First, a fine-tuned Swin seam model draws horizontal lines across the page only where photos start and end. Text blocks and products on a plain background get no lines.

Seam
Swin seam (fine-tuned)
Training data
6,581 images (956 real photos + 5,625 synthetic)

Sample images are AI-generated

Product detail page person text person person text text text flat_lay text flat_lay flat_lay

DemoClassify

Then a fine-tuned Microsoft Florence-2 draws a box for every region and decides whether it is a person, mannequin, flat lay, fabric or text.

Only text blocks with at least one Korean word count as text; English-only lettering is treated as decoration. Photos are boxed along clear edges, or around the smallest area of the garment when there is no edge.

We hand-labeled 2,625 labels in Label Studio to build the training data.

  • person
  • text
  • person
  • person
  • text
  • text
  • text
  • flat_lay
  • text
  • flat_lay
  • flat_lay
Judge
Florence-2 (fine-tuned) · 5 classes
Training data
2,625 labels, hand-made in Label Studio
OCR
Qwen3-VL 8B

Sample images are AI-generated

DemoGarment Masking

SAM3 takes a keyword from the product name (e.g. knit → "knit sweater") and segments only the target product, pixel by pixel. It follows the garment's outline instead of drawing a box; everything else is made transparent and the result is cropped. Only this cut-out goes on to embedding.

Model photo
Model photo
SAM3 mask
SAM3 mask
Target only · transparent · cropped
Target only · transparent · cropped
Model
SAM3 (text prompt · knit sweater)
Next
Only the cut-out goes to embedding

Sample images are AI-generated

Embed

Turns each garment into vectors to find similar items.

Model
DINOv3 ViT-L (1024-d) · Marqo-FashionSigLIP (768-d)
Search
pgvector (HNSW, cosine)

Analyze

Reads the garment's attributes from representative shots.

Inter-VLM Agreement Verification

Three VLMs judge each property separately, and an LLM settles the answer by majority vote. When there is no majority, a person reviews it (QBC, Query-by-Committee).

  1. Representative Shots Representative shots
    • VLM 1Property vote
    • VLM 2Property vote
    • VLM 3Property vote
  2. Majority Vote LLM · majority vote
    • Confirmed2 of 3 agree
    • Human ReviewNo majority · QBC
Judges
VLM × 3
Decision
LLM majority vote · no majority → human review (QBC)
Attributes
Color · Pattern · Detail · Body type and dozens more

Learning posture and motion in 3D.

Coming soon.

A mannequin swinging a golf swing without a club inside a 3D motion viewer