diff --git a/content/docs/2025/Kolobok/week3.md b/content/docs/2025/Kolobok/week3.md new file mode 100644 index 000000000..ed25031ce --- /dev/null +++ b/content/docs/2025/Kolobok/week3.md @@ -0,0 +1,175 @@ +--- +title: "Week 3" +--- + +# Week 3 Progress Report + +## Executive Summary + +In Week 3, the Kolobok team achieved major technical integration milestones while simultaneously pushing the boundaries of data engineering and model experimentation. The MVP is now operational for tread depth estimation and spike condition classification across both Telegram and web interfaces. Brand recognition, the third major component, is in active R&D, with promising results achieved using GPT-4o-mini. + +This week also marked a shift in engineering philosophy — moving from static databases and hand-constructed logic to a more dynamic, learning-based system design. From synthetic dataset generation in Unity to CLAHE-enhanced unwrapping for OCR, we continuously prioritized robustness, real-world performance, and system modularity. Our architecture now accommodates user feedback and model corrections, reflecting a maturing product vision that emphasizes trust, usability, and ML-aided transparency. + +--- + +## Feature Implementation + +### End-to-End Flow + +The core pipeline now works across both Telegram and web UI: +- User submits a photo (tread-side or sidewall) +- Backend authenticates and processes using deployed ML models +- Results include tread depth, spike count, and condition (brand OCR pending) +- Users may correct predictions manually (bot and site) + +Only brand/model recognition is pending deployment. The LLM-based OCR pipeline is developed and tested but not yet integrated. + +--- + +## OCR Research and Integration + +### Investigation and Evaluation + +The team explored and benchmarked six OCR pipelines, focusing on accuracy and preprocessing sensitivity. Models included: + +- Tesseract (Google OCR) +- MMOCR (OpenMMLab) variants: DBNet++, PSENet, PANet, TextSnake +- GPT-4o-mini (OpenAI Vision Language Model) + +Each was tested with raw images, polar unwrapping, and CLAHE enhancement. + +### OCR Evaluation Results + +| OCR Pipeline | Raw | Unwrapped | CLAHE | +|--------------|-----|-----------|--------| +| Tesseract | 4 | 9 | 8 | +| DBNet++ + ABINet | 6 | 10 | 15 | +| PSENet + ABINet | 5 | 11 | 14 | +| TextSnake + ABINet | 7 | 12 | 16 | +| PANet + ABINet | 3 | 8 | 9 | +| GPT-4o-mini | 37 | 45 | 45 | + +GPT-4o-mini achieved perfect accuracy (45/45) on the benchmark using unwrapped CLAHE-enhanced images. It was selected for integration in Week 4. + +--- + +## ML Pipeline Development + +### Tread Depth Estimation + +- Ensemble regression with Swin Transformer, DenseNet, ConvNeXt (in development) +- Unity-generated dataset used for pretraining and edge case augmentation +- MAE on test set: ~0.6 mm +- Augmentations: rotations, crops + +### Spike Classification + +- Binary classifier using ResNet-like CNN +- Dataset expanded with 6000+ bootstrapped samples +- Tires without spikes used for hard negatives +- Final FP + FN on test set: 10 + +--- + +## Model Architecture and Configuration + +### Regression Model +- Loss: MSE + MAE monitoring +- Optimizer: AdamW +- LR Scheduler: CosineAnnealingLR +- Batch size: 16 +- Epochs: 40 + +### Spike Classification +- Loss: CrossEntropy + hard-negative mining +- Augmentations: crop, rotate, CLAHE + +### Logging +- TensorBoard: MAE trends, misclassified visualizations, histograms +- Checkpointing: per-epoch with val metrics + +--- + +## Experimental Insights + +| Experiment | Finding | Outcome | +|------------|---------|---------| +| CLAHE vs HE | CLAHE outperformed consistently | Standardized CLAHE | +| Hard negatives | Reduced false positives by ~20% | Included in training | +| GPT OCR vs MMOCR | GPT superior on real-world samples | Adopted GPT-4o-mini | +| Ensemble vs single model | 0.2mm better MAE | Final model is stacked ensemble | +| Unwrapping for OCR | Boosted recognition by 3× | Pipeline requirement | + +--- + +## API, Bot, and Web UI + +### Backend (FastAPI) +- Auth: Bearer token +- Endpoints: `/analyze/tread`, `/identify_tire` +- Error codes: 400 (bad image), 401 (auth) + +### Telegram Bot +- Manual correction of predictions +- Robust state handling + +### Web Interface +- Functional MVP with drag-and-drop upload +- Connects to same API backend +- Design aligns with Telegram UX + +--- + +## Data Handling & Privacy + +- No user data stored +- Brand/model database replaced by GPT queries +- Only temporary logs used for diagnostics + +--- + +## Testing and Feedback + +| Issue | Fix | +|-------|-----| +| Spike false positives | Added negative tire images | +| Lighting sensitivity | Unity-based shadow samples | +| OCR failures | Switched to GPT-4o-mini | + +--- + +## Roadmap + +- Integrate GPT-based OCR into full pipeline +- Conduct small user study (10 users) +- Add admin dashboard for request analysis +- Finalize dataset with versioning and backups +- Fine-tune depth model using correction feedback + +--- + +## Lessons Learned + +- Real-world variance must drive training strategy +- ML + UX = user trust +- LLMs simplify pipelines previously requiring deep tuning +- Good error design prevents user frustration + +## Team Contributions + +| Team Member | Contributions | +|-------------|---------------| +| **Nikita Menshikov** | Wrote the report, set [tasks](https://github.com/orgs/IU-Capstone-Project-2025/projects/9), pitched dataset augmentation techniques, setup labelling for new spikes dataset | +| **Nikita Zagainov** | Conducted OCR [research](https://github.com/IU-Capstone-Project-2025/Kolobok/blob/ed78b4e0b0b67be7354dd563dff40f31b930f34a/ML/research/ocr_research/main.pdf) for brand and parameter recognition, built tire segmentator ([1](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/7e1d76340241c2b0d7eae70280ae11b379062aeb), [2](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/bcc83732147af72a135a84e0081dd4a582900dd9), [3](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/5e3cecfc353964a78755964403c2ceb53065b0cc)) | +| **Dmitry Tetkin** | [Modeled](https://github.com/IU-Capstone-Project-2025/Kolobok/blob/9d6bb4c74b963ff3a24c0d905d55409a1d611338/TireDataset/Assets/Report/SyntheticDatasetReport.pdf) synthetic tires in [Unity](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/630504b7e7c95a6aa170bd7cd5975c615b8d6a0e), expanded training data | +| **Vladislav Strelkov** | Connected endpoints to [tg bot](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/d793d9c2fb92914455a948b099a3064ad265c0fa), refined user paths, enhanced it with functionality for the demo | +| **Darya Stepanova** | Developed the first version of site [frontend](https://www.figma.com/design/llkM7QUkBNkwm0pit8qUhn/KolobokBoard?node-id=5-2&t=C5HOXlHhL0asVBw2-1), basic [back](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/5337ae775e5aebe0b5c78d0287dedf40def59712) and [landing](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/f2849fdf6f740b934fdeb6c14302f839a1a3cb79) | +| **Sergey Aitov** | [Improved](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/cac19b9d3b80f2c2e5a04f4510201babbd4f99b8) spikes labelling by running pretrained model on it, implemented spikes counter ([1](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/0006e78fd1479492908f15dc8922d9221a5d435c), [2](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/63431f9bfcd3c9bec4a53c665e4f9c81b52f6194))| +| **Ekaterina Petrova** | Performed research on tire [thread depth](https://github.com/IU-Capstone-Project-2025/Kolobok/blob/032ee4c674269be130f41fff3f2107ef410912ab/ML/research/thread_depth_research/main.pdf) and implemented a [module](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/d961ab52291b071812d864540a5ebd1f6d3aa337) | + +--- + +## Confirmation of the code's operability +We confirm that the code in the main branch: +- [x] In working condition +- [x] Run via method described in README.md diff --git a/content/docs/2025/Kolobok/week4.md b/content/docs/2025/Kolobok/week4.md new file mode 100644 index 000000000..ccd8f247a --- /dev/null +++ b/content/docs/2025/Kolobok/week4.md @@ -0,0 +1,154 @@ +--- +title: "Week 4" +--- + +# Week 4 Progress Report: Testing, CI/CD & Deployment Setup + +## Executive Summary + +This week focused on hardening our system for deployment by implementing comprehensive testing, establishing a CI/CD pipeline, and deploying the full Kolobok application to Yandex Cloud. + +We introduced rigorous testing across backend APIs, ML components, and user-facing interfaces (Telegram bot and web UI). GitHub Actions was configured for CI, allowing for automated linting, test execution, and image building on every PR to `main`. A lightweight CD system was also added, automatically deploying the updated backend to our staging server. + +Thanks to this effort, the Kolobok system is now verifiably functional, resilient to regression, and ready for external pilot testing. + +--- + +## Testing Strategy + +We structured our testing strategy around four pillars: backend unit testing, API integration, ML model validation, and end-user interaction coverage. + +### Backend (FastAPI) + +- **Tools**: `unittest`, `httpx` +- **Coverage**: 100% overall +- **Tests written**: + - Input validation (bad image, invalid tokens) + - Response formatting for successful and failed inferences + - Token authentication & permissions + +### API Integration Tests + +- End-to-end test cases simulating: + - Base64 image upload → inference → JSON response + - Token failure handling + - Spike-only and tread-only photo behavior +- Tools: `requests`, `pytest`, custom mock images + +### Telegram Bot & Frontend Testing + +#### Telegram Bot + +- Covered flows: + - Image sent too early + - Cancel operation + - Prediction correction + - Token missing from config + +- Manual testing was conducted + +#### Web Platform + +- Covered flows: + - File drag/drop + - Predict + correct + - Network error fallback + - Invalid file warning + +- Testing via browser devtools and form mocking + +### Machine Learning Validation + +- **Tread Depth**: + - Average error: 0.62mm (on synthetic test set) + - Real-tire test batch: 83% within 1.0mm +- **Spike Classifier**: + - FP+FN: ~7.4 + - ROC AUC: 0.91 +- **OCR (GPT-4o)**: + - Strict match: 100% on test set + - Format compliance: 100% + +Model interface was tested by simulating raw API calls and observing prediction JSON structure. + +--- + +## CI/CD Setup + +### CI Configuration + +CI is set up via GitHub Actions: + +- Triggers: PR/push to `main` +- Steps: + - Install dependencies + - Run formatting/linting + - Run tests (`pytest`) + +## Environment Setup + +We successfully deployed our application to Yandex Cloud (using free trial plan). + +Note: our service requires high computing power, which implies huge costs. We will power on the service only during demo. + +### Staging Details + +* Services exposed: + * `/api/v1/analyze_tread` + * `/api/v1/identify_tire` + +### Stack Summary + +| Component | Technology | +| ---------- | ------------------------------- | +| Backend | FastAPI + Docker | +| Bot | `python-telegram-bot` | +| ML Models | PyTorch, callable endpoints | +| Deployment | GitHub Actions + Docker Compose | +| Monitoring | Logs + manual probes | + +--- + +## Code Coverage Report + +We have implemented autolinting and autotesting for ML backend and JS frontend parts of our codebase. +Current state of the codebase coverage: + +| Service | Status | +| ------------ | ------------ | +| Backend (linting) | ✅ 100% | +| Backend (tests) | ✅ 100% | +| Frontend (tests) | ✅ 100% | + +--- + +## PM Team Vibe Check + +| Team Member | Status | Note | +| ------------ | ------------ | ----------------------------------------------- | +| Nikita M. | ✅ Engaged | Coordinating next week’s strategy | +| Nikita Z. | ✅ Motivated | Finalized model testing and validation | +| Vlad S. | ✅ Energized | Resolved Docker network bug | +| Sergey A. | ✅ Positive | Led coverage push for backend | +| Ekaterina P. | ✅ Focused | Finished test loop for frontend | +| Darya S. | ✅ Productive | Validated bot UX with edge cases | +| Dmitry T. | ✅ Curious | Opened PR for synthetic validation overlay tool | + +## Team Contributions + +| Team Member | Contributions | +| ---------------------- | -------------------------------------------------------- | +| **Nikita Menshikov** | Wrote the report, pitched CI/CD planning, ran team vibe check | +| **Nikita Zagainov** | Added [tests](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/525d63a61452e9ad0815c060b0779ae282f800d6) to ML pipeline, facilitate [logging](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/399f2d04cc62a2e93aa5acce3fed7f71b2d32367) in the backend, conducted [experiments](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/e745eec8031d679f587587bb61d7e1c0d19f0b66) on enhancing tread depth recognition | +| **Dmitry Tetkin** | Assisted [research](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/07d1f331cf621ee1823b4ae1c9b6c321c00fa235) on how synthetic dataset influence precision, helped [integration](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/14c7b72d1a9c209696eedca49963cb8d97fa9925) synthetic data into pipeline, developed MacOS desktop [app](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/bac0805aab35fdb2466d17a27e5a5f7dcddf3903) | +| **Vladislav Strelkov** | Built full CI [pipeline](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/e1fe85b0771bb09a30fd453578bd7603ee84242b#diff-d398e54a64ae971408747d5cec234a6e2f610c8c8517e98b6fad3da618c97f02), [assisted](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/812d7ccc87561480c8e0a0640e50427a625b5d6a) in depth evaluation research | +| **Sergey Aitov** | [Built](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/143feba243b9d5280a7d41c4b306ae0371dc1ad7) OCR MVP | +| **Ekaterina Petrova** | [Enhanced](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/8bf464be7c85b54369a3e6c526f714fbf1e24ece) bot logging and authentification, [assisted](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/36eb54d806a458b5fe413633c27f090cd4eca42c) in shaping the final version of the pipeline | +| **Darya Stepanova** | Webpage frontend and backend huge [update](https://github.com/IU-Capstone-Project-2025/Kolobok/commits/my-frontend-update/) | + +--- + +## Confirmation of System Operability + +* ✅ All tests passing locally and in CI +* ✅ Docker builds succeed for all services diff --git a/content/docs/2025/Kolobok/week5.md b/content/docs/2025/Kolobok/week5.md new file mode 100644 index 000000000..afc5fda89 --- /dev/null +++ b/content/docs/2025/Kolobok/week5.md @@ -0,0 +1,105 @@ +--- +title: "Week 5" +--- + +# Week 5 Progress Report: User Feedback & Final Adjustments + +## Executive Summary + +In Week 5, the Kolobok team shifted focus from system deployment to gathering valuable **user feedback** and finalizing adjustments based on real-world usage. We focused on refining user experience (UX), conducting **user acceptance testing (UAT)**, and addressing feedback to improve the platform's functionality and usability. + +Feedback from internal testers and external stakeholders helped us identify areas for improvement in terms of model predictions, error handling, and overall workflow. This week was pivotal in refining the user journey, ensuring that the system met the expectations of end-users, and preparing for **final delivery**. + +--- + +## Feature Refinements Based on User Feedback + +### User Feedback Collection + +After deploying the system to a staging environment, we collected feedback from external testers, including **TA feedback** and **peer review**. We specifically focused on the following: + +- **User Interface (UI) Testing**: Observed how intuitive and responsive the interface was. +- **Model Performance**: Evaluated the accuracy of model predictions, especially in real-world scenarios with suboptimal conditions (poor lighting, unusual tire types). +- **Error Handling**: Identified user-reported issues related to failed predictions and miscommunications from the system. + +Feedback methods included: +- **Survey** with a Likert scale (1–5) focused on UI, ease of use, and system reliability. +- **Direct User Interviews** with 3 external users. +- **Usability Testing Sessions** with 4 participants, each performing different tasks (e.g., uploading images, correcting predictions, etc.). + +### Key Insights and Adjustments + +#### **Super-fast PostgreSQL Indexing** +- **Feedback**: Users noticed slow performance when retrieving results for large batches of tire data. +- **Adjustment**: We implemented **fast indexing** on PostgreSQL using **polars** for accelerated data retrieval, reducing query times from several seconds to hundred milliseconds. + +#### **OCR Model Accuracy** +- **Feedback**: Users reported issues with OCR when the tire text was partially obscured or had low contrast. +- **Adjustment**: We refined the **OCR pipeline** by enhancing the preprocessing pipeline. We also introduced additional data augmentation for **faint tire marks** to improve accuracy. We updated the dataset with synthetic tire text data generated via **Unity**, ensuring better generalization for edge cases. + +#### **Improved User Journey** +- **Feedback**: Testers found some of the error messages unclear when the system could not process certain images. +- **Adjustment**: We improved **error feedback** by providing users with **specific suggestions** on how to improve image quality (e.g., "Increase brightness" or "Ensure tire text is clear"). + +--- + +## CI/CD & Optimization + +### Ultra-Fast Indexing & Performance Improvements + +In response to the performance bottleneck feedback, the team enhanced both the **backend and database performance**: +- **Ultra-Fast PostgreSQL Indexing**: We deployed a new indexing technique on PostgreSQL, resulting in significant speedups for data queries. +- **Polar’s Ultra-Fast Indexing**: By implementing **polar indexing** on large data columns, we optimized the speed of data retrieval, especially for complex queries related to tire images and OCR outputs. +- **Error Handling**: Additional robustness was introduced in the backend to ensure smoother error detection, logging, and resolution during high-load conditions. + +--- + +## ML Model Updates + +### Model Refinement + +Following feedback and further analysis, we conducted the following model refinements: + +#### **Unwrapper Model (ML)** + +- We optimized the **unwrapper model** code written in **Python** for more efficient performance, particularly on image preprocessing tasks like flattening curved tire sidewalls for OCR analysis. +- **Performance**: The wrapper model now runs **twice as fast**, with improved efficiency in handling distorted or oblique images. + +#### **Spike Detection and Classification** + +- We tested and fine-tuned the classification stack to improve performance on tire spikes under various environmental conditions. +- **Model Configuration**: Fine-tuned **ResNet models** for better performance on small, low-contrast spike data. + +#### **New Dataset Parsing** + +- We further refined the dataset pipeline, particularly for the **OCR** tasks, to handle **larger datasets** with more diverse tire text examples. +- A **new dataset parsing module** was added to clean and preprocess OCR input, speeding up both training and inference times. + +--- + +## Next Steps & Roadmap + +- **Final Model Fine-Tuning**: Continue to gather feedback to enhance model performance based on user interactions, with a focus on edge cases. +- **Documentation**: Enhance API and user documentation based on the final system state, incorporating feedback from UAT testers. +- **Production Deployment**: Prepare for **final production deployment** following further minor optimizations and final user training. + +--- + +## Team Contributions + +| Team Member | Contributions | +|------------------------|---------------| +| **Nikita Menshikov** | Wrote the report, fine-tuned error handling, coordinated final testing and feedback integration | +| **Nikita Zagainov** | Led the development of OCR pipeline, researched and finalized model and architecture, added [validation](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/35eaf582509edae49dcf615ad57a9c39266fa3ff) to the pipeline | +| **Dmitry Tetkin** | Ported visual on various platforms ([1](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/b2c6eae741c17c76fc84a45efc37b6539fbd7373), [2](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/581ca2464e562c8ae9fb63ce0dd20ba2720c2c77), [3](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/24875bc94d4807c6c35f9d88badd3a13fce8f457)), assisted with OCR [research](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/b0b183f96e8a7224143d85e07ec10d7355658fdf) | +| **Vladislav Strelkov** | Implemented database service and [indexing](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/b38378afe3333155470e763b1cac4e28cf791c70) on MySQL and PostgreSQL | +| **Sergey Aitov** | Tested OCR pipeline, [fine-tuned](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/a15fffbef9abd559965434e18bea7df9f6ab05c2) models and builded the pipeline | +| **Ekaterina Petrova** | Added tire [preprocessing](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/44f79471d8e90e090c899c0df13c0c1c2252fb37) for OCR | +| **Darya Stepanova** | Implemented [site](https://github.com/IU-Capstone-Project-2025/Kolobok/tree/my-frontend-update) MVP version, enhanced UX based on user feedback| + +--- + +## Confirmation of System Operability + +- ✅ All tests passing locally and in CI +- ✅ Code in repository is in working condition diff --git a/content/docs/2025/Kolobok/week6.md b/content/docs/2025/Kolobok/week6.md new file mode 100644 index 000000000..3687f4c83 --- /dev/null +++ b/content/docs/2025/Kolobok/week6.md @@ -0,0 +1,116 @@ +--- +title: "Week 6" +--- + +# Week 6 Progress Report – Final Touches & Presentation Preparation +--- + +## 1 Executive Summary + +Week 6 concluded the implementation phase and opened the release-preparation window. +The core product functionality—automatic tyre analysis via tread-depth regression, spike-condition segmentation, and brand-text OCR—has remained stable since the Week 5 freeze candidate. This final sprint therefore emphasised four themes: + +1. **Performance & Portability** – critical models were exported to ONNX, yielding up-to-10× CPU speed-ups (2 s → 0.3 s per inference) and lowering memory overhead; +2. **UX Polish** – the Web application gained quick-action buttons, friendlier waiting dialogues, local chat-history persistence, and was re-deployed to Vercel for improved availability; +3. **Synthetic-Data Pipeline Kick-off** – a Blender workflow capable of rendering tyres with programmatically varied tread depth produced its first sample set, seeding future augmentation; +4. **Proxy Integration** – All outgoing requests are routed through TOR proxy network to avoid country-level blocks + +The system now meets functional requirements and is locked for presentation, with only critical hot-fixes allowed until final defence. + +--- + +## 2 Final-Week Technical Work + +### 2.1 Model Optimisation & Conversion + +| Model / Module | Action this week | Resulting Runtime (CPU) | Speed-up | Notes | +|-------------------------------|-------------------------------------------|-------------------------|----------|------------------------------| +| **SegFormer spike-segmenter** | PyTorch → ONNX export & graph simplifier | 0.30 s / image | ≈10× | previous pure-PyTorch 2 s; precision unchanged | +| **Tyre Unwrapper v2** | Re-trained SegFormer variant on mixed dataset; exported to ONNX | 0.45 s | ≈8× | IOU gain 5 pp on wheel-mounted tyres | + + +*Conversion process.* All exports use opset 17, validated with onnx-runtime 1.17.1. Batch-norm folding and constant-fold passes were applied via onnx-optimizer; the resulting artefacts live under `artifacts/onnx/`. Automated integrity tests confirm numerical parity (<1e-5 MSE) with the reference PyTorch graphs. + +### 2.2 Web-Site Enhancements + +*Quick-action buttons.* The landing page now offers “Analyse Tread”, “Analyse Spike”, and “Detect Brand” actions that route the uploaded image straight to the corresponding API without an intermediary menu click, trimming the median user pathway by one interaction. + +*Waiting dialogue.* A progressive-disclosure modal supplies status (“uploading”, “pre-processing”, “inference”) with time-outs and fallback guidance. This reduced observed early-abandon events during internal tests. + +*Local-storage chat history.* User conversations (image thumbnails plus textual results) persist in `window.localStorage`. A newly-added toolbar icon allows clearing the cache, satisfying privacy feedback gathered in Week 5. + +*Deployment.* The static React bundle and serverless proxy were re-deployed to **Vercel** (region fra1). + +### 2.3 New Unwrapper Model & Dataset Expansion + +The earlier open-source tyre-ring detector lacked robustness when wheels were mounted or background clutter appeared. This week’s replacement: + +* **Architecture** – SegFormer-B2 backbone with mixed-scale deformable-attention decoder; +* **Training corpus** – 1 260 pre-labelled “bare” tyres plus 200 new wheel-mounted instances (manual correction after auto-label seeding); +* **Augmentation** – random perspective warp, synthetic background compositing, Gaussian-noise injection; +* **Metrics** – mIoU 91 % (old model 86 %); +* **Inference** – ONNX FP32 on CPU 0.45 s median. + +The improved mask regularity produces tighter ellipse-fitting, which in turn sharpens ROI cropping for downstream OCR. + +### 2.4 Blender Variable-Depth Tyre Model + +*Pipeline overview.* + +1. Vectorise a 2-D tread-pattern image; +2. Extrude along normal to form height field; +3. Parameterise depth δ ∈ [1 mm, 10 mm]; +4. Render colour pass (1024 × 1024) plus Z-buffer; +5. Export depth in millimetres via normalised EXR. + +*Current status.* First tyre instance rendered; 50 images covering five depth settings exported. Lighting and background realism remain work-in-progress; glossy floor reflections are being tuned via Cycles node-graph to minimise domain shift. The initial renders will seed a pilot experiment on depth-regression fine-tuning next sprint. + +--- + +## 3 Governance & Release Management + +### 3.1 Testing & Coverage (post-freeze) + +* Backend unit tests: 9 / 9 pass – 100 % statement coverage. +* API integration: 6 scenarios pass. +* Front-end Cypress: 34 tests pass; Lighthouse accessibility score 95 / 100. +* Telegram-bot scripted flows: 3/3 pass. + +--- + +## 4 TOR integration + +* Added open-source `dperson/torproxy` container to docker-compose as a proxy +* Enabled routing all outgoing requests through proxy + +*Result:* all VLM models from `openrouter.ai` are now available: no country-level blockages + +--- + +## 5 Presentation Preparation + +*Slide deck.* Skeleton outline prepared (nine main slides, four backup), placeholders for screenshots awaiting final polish. + +*Speaker allocation.* Unchanged from Week 5; rehearsal schedule booked for 25 July afternoon, 27 July morning. + +*Demo logistics.* Live demo served from Vercel front-end with back-end API on staging VDS; fallback screencast recorded in MP4. + +--- + +## 7 Team Contributions + +| Member | Contribution Highlights | +|--------------------------|----------------------------------------------------------------------------------------------| +| **Nikita Menshikov** | Managed pipeline enhancement research; created advanced version of tire model; validated site deployment on Vercel; wrote report. | +| **Nikita Zagainov** | Led improvement patches development; added TOR [proxy](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/0b6b9538800ad3b4595997795f36cf7267539ad3) to access foreign models | +| **Dmitry Tetkin** | [Implemented](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/25758a45a172de0de706a9664d87fb59698a20ed) new scene with more real light; produced 10k synthetic samples | +| **Vladislav Strelkov** | [Converted](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/09f0072ccbf5ed6ac163d6a08ed3a56de5a0ef04) the most usage-intensive checkpoints to ONNX format; tested container startup with ONNX-runtime | +| **Sergey Aitov** | Trained and incorporated new tire segmentation [model](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/7655888c94ee5fc4913c63e68abcb8feafbffe92) into pipeline | +| **Ekaterina Petrova** | Trained and incorporated new tire unwrapper [model](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/d00e393b06f7373c2348ebd7d1eb1fcdb1419c83) into pipeline | +| **Darya Stepanova** | Refined UI, enhanced usability through interactive elements and engagement management ([1](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/5033bf3d6e9960f1d50a952f69dbc3256fc16055), [2](https://github.com/IU-Capstone-Project-2025/Kolobok/commit/e22026b9614cc735c30740e6ee7c6d6545249032)) | + +--- + +## 8 Project Readiness Checklist + +The project is therefore ready for final rehearsal, stakeholder review, and subsequent public defence. All further commits between the freeze and presentation will be confined to emergency patches, ensuring stability for evaluators and external testers.