Corn

@AlanCorn

現為新創公司軟體工程師,嘗試紀錄在工作中的所見所聞,並持續整理屬於自己的筆記與知識,如果有錯誤地方,歡迎討論、與指正 Language : C/C++ / Python Edge Device : raspberry pi 5 / ESP32 / Jetson AGX Orin

Joined on Feb 19, 2024

  • 深度思維 ![image](https://hackmd.io/_uploads/Hk0srgz9R.png =25%x) 思維邏輯鍊,能夠認知較長的因果關係 靈活看待問題的視角 面對較大資訊量,能夠在資訊流中找到關鍵,保持思維能力 在宏觀視角上分析問題,跳脫自己框架,認知事務與生態特性、事務的長期趨勢 思維邏輯鏈 思維邏輯鏈能夠讓你針對條件/現象/問題本身進行深度思考,進而讓自己能夠處於優勢,或者理解自身現況
     Like  Bookmark
  • Brief 簡介 專案使用 YOLOv8 物件檢測模型部屬在邊緣裝置上,在了解模型與測試後發現仍然有可以優化地方存在,而關鍵在於 YOLOv8 在 Decode bbox 過程中是將每一個特徵網格(grid) 的每一個 bbox 都進行解碼,而這部分能夠將其移除,並在邊緣端進行實作,進而減少 decode box 時間 Model structure ![image](https://hackmd.io/_uploads/rkdKVnXkke.png =100%x) YOLOv8 Post Process 在將影像輸入模型並進行後續操作後,針對不同部署模型格式 (如 ONNX、TensorRT、TFLite 等) 進行 export 時,後處理操作可能會影響計算圖 (computational graph) 的生成,而 decode bbox 過程也包含在裡面,因此我們需要將其拔除並另外實現在邊緣裝置上 我們從 YOLOv8 (現行為 YOLOv11 了) 來進行部分程式碼的解讀,參考 ultralytics 的 github 開源程式碼 ultralytics/nn/modules/head.py
     Like  Bookmark
  • 前言 高層自白: 如果這些投資商品能賺錢,銀行券商自己早就先買完了 「金錢理論」 正確分散,錢就會安全增加 手續費和稅金越少,錢就不容易減少 運用複利思維,能夠加快金錢增加的腳步 點出問題
     Like  Bookmark
  • ![圖片1](https://hackmd.io/_uploads/S1GGQmsbyx.png =50%x) 簡介 本文是學習筆記,學習開源程式碼 OpenCV 中的實作,並且學習其中所使用的概念 Mat Implementation struct Mat { /*! includes several bit-fields: - depth (4~-11) - number of channels (1~3)
     Like  Bookmark
  • 簡介 C語言為強型別的語言,對於資料型態規範非常嚴格,因此對於C語言中變數的宣告,要能夠解讀與分析,這樣才能夠理解每一個變數或函數或陣列所使用的資料型態是甚麼。 Right-left Rule Right-left Rule 指得是解讀C語言宣告式的一個規則,也就是先往右邊進行解讀,遇到特定字元再往左邊進行解讀, 運算子解讀方式 以下有3個基本的運算子 * 中文讀為 "指標指向的是...",而英文則為 as pointer to ...,只會在 (辨識字) 左邊出現
     Like  Bookmark
  • Introduction 陣列為一種在記憶體空間連續分布的資料型態,陣列中的東西我們稱作元素(element),陣列能夠透過元素的索引(index) 來取得資料。 連續記憶體分布 為靜態的,不能改變大小 透過索引索取資料,索引時間複雜度$O(1)$ Array 在 C 語言中 以下為宣告陣列一個方式, arr 宣告成有 5 個元素的陣列,元素資料型態為 int ,在32/64位元系統底下,int 佔 4 byte,對於arr來說使用sizeof測量陣列大小時會輸出 4 * 5 = 20 byte。
     Like  Bookmark
  • 作者介紹 周冠男 目前為政大財管系特聘教授兼商學院院長 研究領域行為財務學 決策相關 市場微結構 高頻交易 自序
     Like  Bookmark
  • Author Rober T. Kiyosaki 羅伯特·T·清崎 日裔美國人,先辦公司再把公司賣掉提早退休的人,最後還是賣書來賺錢羅(? 第一課: 富人不為錢工作 簡述 富人讓錢為他們工作,窮人為錢而工作 以故事方式,以第一視角方式敘述男主角(我)與好朋友麥克跟他們的窮爸爸與富爸爸之間的故事,並從中談起富爸爸與窮爸爸在思想上的不同 避開一生最大的陷阱
     Like  Bookmark
  • Smart Pointers 在 C++11 中的標準模板庫(STL,為了要解決記憶體洩漏問題(Memory Leak) 的問題,便引進了Smart Pointer來更方便管理記憶體,而標頭檔案為 <memory> Smart pointers enable automatic, exception-safe, object lifetime management. cppreference :::danger 如果在 free 跟 delete 前程式碼就爆開了,當記憶體空間沒有釋放到一定程度就會爆開 :::
     Like  Bookmark
  • 韓國釜山旅遊筆記 👋 簡介 旅行時間:2024-12-29 ~ 2025-01-02目的地: 韓國釜山 住宿: urbanstay 酒店(自助式) 🗓️ 行程規劃 📍 Day 1 - 2024/12/29 (桃園機場 to 釜山/金海機場 to urbanstay 酒店) 時間 項目 備註
     Like  Bookmark
  • 何謂 Makefile 在軟體開發中,make 是一個工具程式,藉由由讀取一個叫做 makefile 的檔案,自動化建構軟體。 make 是linux中的命令工具,它可以用來解析 Makefile 中的指令。 Makefile 則是一份用於管理和自動化編譯流程的配置文件,它明確指定計算機如何編譯、連結程式碼,並在大型專案中通過設計的規則顯著提升效率,減少不必要的編譯時間。 make 可以解決相依性問題 透過撰寫規則,減少編譯時間,減少重複編譯過程,只需編譯有修改的 可以透過 makefile 來掌握程式碼架構 ![image](https://hackmd.io/_uploads/Sk8NSxBA1g.png =50%x) Makefile Workflow
     Like 1 Bookmark
  • 前言 :::info 錄影內容 排程器原理(上) ::: Scheduling Internals Scheduling動畫說明,說明Scheduler如何安排任務, Deadline每個任務要在特定時間內執行完
     Like  Bookmark
  • 讀書會 集結一本書的精華 分享彼此生活經驗並與書中概念做結合 練習陌生社交 練習輸出 2024/6/23 😎 底層邏輯 底層邏輯: 看清這個世界的底牌 ![image](https://hackmd.io/_uploads/HJvJo1P8C.png =35%x)
     Like  Bookmark
  • 概念 交叉編譯 (Cross Compilation) 是指在一台電腦上編譯可以在另一種電腦上執行的程式 舉個例子: 你用 Windows 系統的電腦,寫了一個程式是給 Raspberry Pi (樹莓派,使用 ARM 架構) 跑的,在編譯時候正常來說編譯出的執行檔案只能在 Windows 上執行,如果要移植到樹梅派上就無法執行,因為編譯需要考量到編譯器以及對應的平台是什麼 確認目標平台 CPU 架構 ARM、x86 作業系統 Linux、Android、Windows 交叉編譯器
     Like  Bookmark
  • 資料整理 Corn 議題 偵測環狀結構 排序問題確保空間複雜度為 $O(1)$ Traverse Linked List 在 Linux 核心程式碼 在linux/list.h為Linked List中以circular doubly-linked list(雙向環狀鏈結串列) 進行實作,只要在自定義的資料結構中加入struct list_head便可以透過Linux List list的api進行操作。如下圖所示,也就是將其嵌入自定義的資料結構。 image
     Like  Bookmark
  • Leetcode 解題筆記 === String 字串 【LeetCode】344. Reverse String Array 陣列 【LeetCode】844. Backspace String Compare 【LeetCode】704. Binary Search 【LeetCode】59. Spiral Matrix II
     Like  Bookmark
  • Question link Link Intuition Write a function that reverses a string. The input string is given as an array of characters s. You must do this by modifying the input array in-place with O(1) extra memory. 給定字串s,將其翻轉 最直接想法就是直接使用新的一個字串,並從尾到頭歷遍字串,但是需要O(n)的空間,因此如果使用雙指標法的話就不需要這麼多空間,直接交換頭尾兩個指標的字元就好 Approach
     Like  Bookmark
  • Question link Link Intuition Given a positive integer n, generate an n x n matrix filled with elements from 1 to n2 in spiral order. 給定一個整路n,以迴旋方式產生一個陣列,並將數字從1填充到n2 題目要求以迴旋方式將數字填入到矩陣中,因此我們需要考慮每一個邊,該如何設計迴圈的操作條件,依舊是要堅持迴圈不變量的原則,填充的順序為 上列為由左到右 右列為由上至下
     Like  Bookmark
  • 簡介 這兩個巨集對於Linux核心原始程式碼非常的重要,它適用的範圍非常廣泛,被應用在Linked List與hash Table這一通用的資料結構中,用來化簡程式設計,並讓C語言也具備物件導向的行為,也是Linux物件導向中相當重要的機制! offsetof 巨集 #ifndef offsetof #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) #endif 目的 : 取得結構體內成員相對於結構體起始位置的位移量 size_t : 表示一個byte的單位
     Like  Bookmark
  • Introduction 簡介 Binary Tree題目涉及大量的演算法,例如traversal、recursive、backtracking等等演算法 Define 介紹 為每個節點至多只有兩個分支的樹,左分支稱作左子樹而右分支稱為右子樹 Attribute 性質 :::warning Leetcode定義與正常不太一樣,Leetcode為以節點數(node)當基準,而正常定義為以邊(edge)數量 :::
     Like  Bookmark