Skip to content
View daviddolya's full-sized avatar
  • Kazakhstan

Block or report daviddolya

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
daviddolya/README.md

Hi, I'm David 👋

Data annotation and dataset quality for computer vision

Diploma in software development — Ust-Kamenogorsk Higher Polytechnic College, 2026; currently studying towards a bachelor's degree.
I work on what sits underneath the model: annotation, its measurable quality, and the acceptance of work done by others.

Kazakhstan  ·  open to relocation  ·  email  ·  telegram

languages python    tools pytorch docker git linux


Annotation quality

Five annotation types, each annotated by hand in CVAT blind to a public ground truth, then compared against it by the metric that type is actually measured with. Every repository carries its own annotator guidelines, a report on the systematic disagreements, and a reproduce block.

Type Data Result
P2 boxes COCO val2017, 100 frames Cohen's kappa 0.914, mean IoU 0.867
A2 polygons and masks COCO val2017, 25 frames mask IoU 0.840, Boundary IoU 0.676
A3 tracks on video MOT17-09, 150 frames IDF1 0.896, 2 ID switches
A4 skeletons COCO Keypoints, 14 frames OKS 0.895, flag agreement 0.822
A5 scene text Total-Text, 10 frames mask IoU 0.784, CER 0.223

The recurring finding is that most of the disagreement is convention rather than carelessness: the frame border costs 72 of 77 uncovered boxes on tracks, letter case costs 94% of the character error rate on text, and the visibility flag is an axis no coordinate metric can see at all.

Acceptance of someone else's annotation is a sixth, private stage: a sampling plan with a stated risk, three defect levels, an accept-or-return rule, run against two batches — a human-made reference and a model pre-annotation.


Projects

steel-defect-classification — six defect classes of hot-rolled steel strip (NEU Surface Defect Database). ResNet-18 fine-tune, YAML-configured runs, tagged release with weights. Validation accuracy hit 100%, so I stopped and wrote down the five pipeline bugs behind it instead of publishing the number. Honest metrics land once the split is rebuilt.

dokuwiki-rag — retrieval over the internal DokuWiki of a metallurgical plant, built as my college diploma project. Hybrid search in Qdrant with bge-m3 embeddings and a bge-reranker-v2-m3 cross-encoder, qwen3:8b through Ollama, FastAPI + Streamlit, four services under Docker Compose. Retrieval Hit@10 = 97% over 34 hand-labelled questions; the customer's corpus is replaced with a synthetic one.

Pinned Loading

  1. steel-defect-classification steel-defect-classification Public

    Six-class surface defect classification on the NEU hot-rolled steel database (PyTorch, ResNet-18)

    Jupyter Notebook

  2. detection-annotation-agreement detection-annotation-agreement Public

    Manual detection annotation in CVAT vs COCO ground truth: Cohen's kappa, mean IoU, systematic error analysis, annotator guidelines

    Python

  3. dokuwiki-rag dokuwiki-rag Public

    RAG over a plant's internal DokuWiki: hybrid search in Qdrant, cross-encoder reranking, local LLM.

    Python