[{"data":1,"prerenderedAt":457},["ShallowReactive",2],{"home-projects":3,"home-posts":401},[4,150,271],{"id":5,"title":6,"body":7,"category":126,"date":127,"description":128,"extension":129,"featured":130,"githubUrl":119,"images":131,"liveUrl":119,"longDescription":135,"meta":136,"navigation":137,"path":138,"seo":139,"slug":140,"stem":141,"tech":142,"thumbnail":132,"__hash__":149},"projects\u002Fprojects\u002Fkhmer-mnist.md","Khmer MNIST Digit Classification",{"type":8,"value":9,"toc":118},"minimark",[10,14,18,23,26,30,69,73,99,103],[11,12,6],"h1",{"id":13},"khmer-mnist-digit-classification",[15,16,17],"p",{},"A Khmer handwritten digit classification project using advanced preprocessing and a custom ResNet model built from scratch.",[19,20,22],"h2",{"id":21},"project-overview","Project Overview",[15,24,25],{},"This project focuses on Khmer handwritten digit recognition with a strong data-centric and model-centric approach. I contributed by improving the full training pipeline, including advanced preprocessing and a custom ResNet implementation, to increase classification performance and stability.",[19,27,29],{"id":28},"key-features","Key Features",[31,32,33,41,47,53,63],"ul",{},[34,35,36,40],"li",{},[37,38,39],"strong",{},"Custom ResNet Architecture",": Built a lightweight ResNet model from scratch for Khmer digit classification",[34,42,43,46],{},[37,44,45],{},"Advanced Preprocessing",": Applied denoising, normalization, and image enhancement for cleaner model input",[34,48,49,52],{},[37,50,51],{},"Robust Training Pipeline",": Used data augmentation and optimization tuning to improve generalization",[34,54,55,58,59,62],{},[37,56,57],{},"High Validation Performance",": Achieved ",[37,60,61],{},"99.3%"," accuracy on the validation set",[34,64,65,68],{},[37,66,67],{},"Low-Resource Adaptation",": Designed the solution to perform well on Khmer handwritten character patterns",[19,70,72],{"id":71},"technical-stack","Technical Stack",[31,74,75,81,87,93],{},[34,76,77,80],{},[37,78,79],{},"Framework",": PyTorch for model development and training",[34,82,83,86],{},[37,84,85],{},"Model Design",": Custom ResNet blocks implemented from scratch",[34,88,89,92],{},[37,90,91],{},"Data Processing",": OpenCV and NumPy for preprocessing and transformation pipeline",[34,94,95,98],{},[37,96,97],{},"Evaluation",": Scikit-learn metrics for validation analysis and performance tracking",[19,100,102],{"id":101},"achievements","Achievements",[31,104,105,108,111],{},[34,106,107],{},"Improved the baseline model by redesigning architecture and preprocessing strategy",[34,109,110],{},"Built and trained a scratch ResNet model tailored for Khmer digit recognition",[34,112,113,114,117],{},"Reached ",[37,115,116],{},"99.3% validation accuracy"," through iterative experimentation and optimization",{"title":119,"searchDepth":120,"depth":120,"links":121},"",2,[122,123,124,125],{"id":21,"depth":120,"text":22},{"id":28,"depth":120,"text":29},{"id":71,"depth":120,"text":72},{"id":101,"depth":120,"text":102},"machine-learning","2026-04-01","Custom Khmer handwritten digit classification pipeline with advanced preprocessing and a scratch-built ResNet model","md",true,[132,133,134],"\u002Fproject\u002Fkhmer-mnist.png","\u002Fimages\u002Fprojects\u002Fkhmer-mnist-2.jpg","\u002Fimages\u002Fprojects\u002Fkhmer-mnist-3.jpg","Developed and improved a Khmer handwritten digit classification system by building a compact ResNet architecture from scratch and designing an advanced preprocessing pipeline tailored to noisy, real-world character images. Applied augmentation, normalization, and denoising strategies to improve robustness and generalization. Trained and validated the model with careful experimentation on architecture depth, optimization settings, and regularization, ultimately achieving 99.3% validation accuracy. This contribution demonstrates practical deep learning model design, data-centric optimization, and strong performance for Khmer OCR foundations.",{},null,"\u002Fprojects\u002Fkhmer-mnist",{"title":6,"description":128},"khmer-mnist","projects\u002Fkhmer-mnist",[143,144,145,146,147,148],"Python","PyTorch","ResNet","OpenCV","NumPy","Scikit-learn","g9-rEbwUyeL2XuTFlK93PvyTZoZ0VJoeaSwni7vr2XA",{"id":151,"title":152,"body":153,"category":249,"date":250,"description":251,"extension":129,"featured":130,"githubUrl":119,"images":252,"liveUrl":256,"longDescription":257,"meta":258,"navigation":137,"path":259,"seo":260,"slug":261,"stem":262,"tech":263,"thumbnail":269,"__hash__":270},"projects\u002Fprojects\u002Fwater-level-monitoring.md","Water-Level Monitoring System",{"type":8,"value":154,"toc":243},[155,158,161,163,166,168,200,204,230,232],[11,156,152],{"id":157},"water-level-monitoring-system",[15,159,160],{},"An intelligent IoT water-level monitoring system with machine learning-powered leak detection and automated response mechanism.",[19,162,22],{"id":21},[15,164,165],{},"This system integrates IoT sensors with machine learning to provide real-time water-level monitoring and automated leak detection. The project was successfully accepted and presented at an AI Conference in Malaysia.",[19,167,29],{"id":28},[31,169,170,176,182,188,194],{},[34,171,172,175],{},[37,173,174],{},"Real-time Monitoring",": Continuous water-level tracking with IoT sensors",[34,177,178,181],{},[37,179,180],{},"Leak Detection",": ML-powered anomaly detection to identify leaks early",[34,183,184,187],{},[37,185,186],{},"Automated Response",": Automatic shut-off mechanism to prevent water waste and damage",[34,189,190,193],{},[37,191,192],{},"End-to-End Pipeline",": Complete system from data collection to database management",[34,195,196,199],{},[37,197,198],{},"Self-Initiated",": Developed independently with zero budget, showcasing strong problem-solving abilities",[19,201,203],{"id":202},"technical-architecture","Technical Architecture",[31,205,206,212,218,224],{},[34,207,208,211],{},[37,209,210],{},"Data Collection",": Arduino-based sensors for real-time water-level measurements",[34,213,214,217],{},[37,215,216],{},"Backend Processing",": Python and PHP for data processing and ML model inference",[34,219,220,223],{},[37,221,222],{},"Database",": SQL database for storing historical data and system logs",[34,225,226,229],{},[37,227,228],{},"ML Models",": Machine learning algorithms for pattern recognition and leak prediction",[19,231,102],{"id":101},[31,233,234,237,240],{},[34,235,236],{},"Successfully presented at AI Conference in Malaysia",[34,238,239],{},"Research paper accepted and published",[34,241,242],{},"Demonstrated practical application of IoT and ML integration",{"title":119,"searchDepth":120,"depth":120,"links":244},[245,246,247,248],{"id":21,"depth":120,"text":22},{"id":28,"depth":120,"text":29},{"id":202,"depth":120,"text":203},{"id":101,"depth":120,"text":102},"engine","2026-02-01","Intelligent IoT water-level monitoring system with machine learning-powered leak detection and automated response mechanism",[253,254,255],"\u002Fimages\u002Fprojects\u002Fwater-level-monitoring-1.jpg","\u002Fimages\u002Fprojects\u002Fwater-level-monitoring-2.jpg","\u002Fimages\u002Fprojects\u002Fwater-level-monitoring-3.jpg","https:\u002F\u002Fdocs.google.com\u002Fdocument\u002Fd\u002F1DuVijaKOeuzwsTbQ9hRPkm7cE5pl-aO8\u002Fedit?usp=sharing&ouid=115634637106939792285&rtpof=true&sd=true","Designed and developed an intelligent water-level monitoring system integrating IoT sensors with machine learning. Implemented real-time leak detection and automated response mechanism to shut off water flow and prevent waste or damage. Built end-to-end pipeline including data collection (Arduino), backend processing (Python\u002FPHP), and database management (SQL). Developed as a self-initiated project with no budget, demonstrating strong problem-solving and engineering skills. Successfully accepted and presented at an AI Conference in Malaysia.",{},"\u002Fprojects\u002Fwater-level-monitoring",{"title":152,"description":251},"water-level-monitoring","projects\u002Fwater-level-monitoring",[143,264,265,266,267,268],"Arduino","PHP","SQL","IoT","Machine Learning","\u002Fproject\u002Fwater.jpg","o230zCllg1ZJL9mJ4i0jlj-FEsypkPpEwQYWRHDTDgQ",{"id":272,"title":273,"body":274,"category":126,"date":380,"description":381,"extension":129,"featured":130,"githubUrl":382,"images":383,"liveUrl":119,"longDescription":387,"meta":388,"navigation":137,"path":389,"seo":390,"slug":391,"stem":392,"tech":393,"thumbnail":399,"__hash__":400},"projects\u002Fprojects\u002Fkhmer-ocr-tts.md","Khmer Text-to-Speech & OCR System",{"type":8,"value":275,"toc":374},[276,279,282,284,287,289,327,329,361,363],[11,277,273],{"id":278},"khmer-text-to-speech-ocr-system",[15,280,281],{},"An end-to-end Khmer OCR extraction and Text-to-Speech pipeline using transfer learning and advanced image preprocessing techniques.",[19,283,22],{"id":21},[15,285,286],{},"This project addresses the challenge of Khmer text recognition and speech synthesis under limited-resource conditions. By leveraging transfer learning and advanced preprocessing, the system achieves robust performance on real-world documents.",[19,288,29],{"id":28},[31,290,291,297,303,309,315,321],{},[34,292,293,296],{},[37,294,295],{},"Khmer OCR",": Advanced optical character recognition optimized for Khmer script",[34,298,299,302],{},[37,300,301],{},"Text-to-Speech",": Natural speech synthesis for Khmer language",[34,304,305,308],{},[37,306,307],{},"Image Preprocessing",": Denoising, binarization, and geometric correction for enhanced OCR accuracy",[34,310,311,314],{},[37,312,313],{},"Transfer Learning",": Adapted pre-trained vision-language and speech models for Khmer",[34,316,317,320],{},[37,318,319],{},"CUDA Optimization",": GPU-accelerated training and inference for reduced latency",[34,322,323,326],{},[37,324,325],{},"RESTful API",": FastAPI-based scalable model serving",[19,328,72],{"id":71},[31,330,331,337,343,349,355],{},[34,332,333,336],{},[37,334,335],{},"Backend",": FastAPI for RESTful API development",[34,338,339,342],{},[37,340,341],{},"ML Framework",": PyTorch with CUDA acceleration",[34,344,345,348],{},[37,346,347],{},"Models",": HuggingFace Transformers for vision-language and speech models",[34,350,351,354],{},[37,352,353],{},"Image Processing",": OpenCV for preprocessing pipeline",[34,356,357,360],{},[37,358,359],{},"Deployment",": Optimized for production serving with low latency",[19,362,102],{"id":101},[31,364,365,368,371],{},[34,366,367],{},"Successfully adapted large language models for low-resource Khmer language",[34,369,370],{},"Achieved high accuracy on real-world document images",[34,372,373],{},"Built scalable API for integration with downstream applications",{"title":119,"searchDepth":120,"depth":120,"links":375},[376,377,378,379],{"id":21,"depth":120,"text":22},{"id":28,"depth":120,"text":29},{"id":71,"depth":120,"text":72},{"id":101,"depth":120,"text":102},"2025-12-01","End-to-end Khmer OCR extraction and Text-to-Speech pipeline using transfer learning and advanced image preprocessing","https:\u002F\u002Fgithub.com\u002Fchhaytheanly\u002FKhmer-OCR-Tesseract",[384,385,386],"\u002Fimages\u002Fprojects\u002Fkhmer-ocr-tts-1.jpg","\u002Fimages\u002Fprojects\u002Fkhmer-ocr-tts-2.jpg","\u002Fimages\u002Fprojects\u002Fkhmer-ocr-tts-3.jpg","Designed and implemented an end-to-end Khmer OCR extraction and Text-to-Speech (TTS) pipeline under limited-resource conditions. Applied transfer learning on pre-trained vision-language and speech models (HuggingFace) to adapt them for Khmer text recognition and speech synthesis. Built advanced image preprocessing techniques (denoising, binarization, geometric correction) to enhance OCR performance on real-world documents. Optimized training and inference using PyTorch with CUDA acceleration, reducing inference latency and improving deployment efficiency. Developed RESTful APIs using FastAPI for scalable model serving and integration with downstream applications.",{},"\u002Fprojects\u002Fkhmer-ocr-tts",{"title":273,"description":381},"khmer-ocr-tts","projects\u002Fkhmer-ocr-tts",[143,394,395,144,396,146,397,398],"FastAPI","HuggingFace Transformers","CUDA","OCR","TTS","\u002Fproject\u002Fkhmer-arn.png","JkP2c5c2mBpyY1CuUh1E5xJ1LVgo08lFUZZj6gu9PtQ",[402,430],{"id":403,"title":404,"author":405,"body":406,"cover":416,"date":417,"description":418,"extension":129,"meta":419,"navigation":137,"path":420,"readTime":421,"seo":422,"slug":423,"stem":424,"tags":425,"__hash__":429},"blog\u002Fblog\u002Fbuilding-accessible-web-apps.md","Building Accessible Web Applications","Your Name",{"type":8,"value":407,"toc":414},[408,411],[11,409,404],{"id":410},"building-accessible-web-applications",[15,412,413],{},"Accessibility is not a feature — it's a fundamental aspect of good design...",{"title":119,"searchDepth":120,"depth":120,"links":415},[],"\u002Fimages\u002Fblog\u002Faccessibility.jpg","2024-10-05","A comprehensive guide to implementing WCAG 2.1 AA standards in modern web apps",{},"\u002Fblog\u002Fbuilding-accessible-web-apps",8,{"title":404,"description":418},"building-accessible-web-apps","blog\u002Fbuilding-accessible-web-apps",[426,427,428],"Accessibility","Web Development","Best Practices","UzeuDX4B1MNs_8WdApxxR-ApK9EQqvjcjpebpWnt7Uo",{"id":431,"title":432,"author":405,"body":433,"cover":443,"date":444,"description":445,"extension":129,"meta":446,"navigation":137,"path":447,"readTime":448,"seo":449,"slug":450,"stem":451,"tags":452,"__hash__":456},"blog\u002Fblog\u002Foptimizing-core-web-vitals.md","Optimizing Core Web Vitals in Nuxt 3",{"type":8,"value":434,"toc":441},[435,438],[11,436,432],{"id":437},"optimizing-core-web-vitals-in-nuxt-3",[15,439,440],{},"Performance matters. Here's how I achieved perfect Core Web Vitals scores...",{"title":119,"searchDepth":120,"depth":120,"links":442},[],"\u002Fimages\u002Fblog\u002Fperformance.jpg","2024-08-22","Practical techniques to achieve LCP \u003C 2.5s, CLS \u003C 0.1, and INP \u003C 200ms",{},"\u002Fblog\u002Foptimizing-core-web-vitals",12,{"title":432,"description":445},"optimizing-core-web-vitals-nuxt3","blog\u002Foptimizing-core-web-vitals",[453,454,455],"Performance","Nuxt 3","SEO","h8i3UxCYybZufHf_426_b9ex-e5xGYvbEx82V1s8tyQ",1775448379185]