中國電動車購買補助高於預期 特斯拉股價攀新高

據新浪財經消息,受中國財政部宣布的電動汽車補貼縮減幅度低於市場預期,可望為特斯拉下月起在中國銷售Model S創造良好環境的影響,特斯拉汽車(TSLA)昨(10)日股價漲5.38%至196.56美元的新高。特斯拉方面表示,雖然Model S不在直接補貼範圍內,但希望中國也能考慮給予直接補貼待遇。

據《新華社》報導,中國去(2013)年向電動車消費者每台車補貼約 3.5 至 6 萬元人民幣,而今年與明 (2015) 年補貼金額將分別減少至 5% 與 10%,僅為原先公布補貼縮減幅度的一半。

特斯拉上月宣布的報告指出,去年第 4 季一共售出 6900 輛 Model S 車款,銷售輛季增 25%,也比先前預期高出 20%,也帶動公司股價穩定回升。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

一對多分頁的SQL到底應該怎麼寫?

1. 前言

MySQL一對多的數據分頁是非常常見的需求,比如我們要查詢商品和商品的圖片信息。但是很多人會在這裏遇到分頁的誤區,得到不正確的結果。今天就來分析並解決這個問題。

2. 問題分析

我們先創建一個簡單商品表和對應的商品圖片關係表,它們之間是一對多的關係:

然後我分別寫入了一些商品和這些商品對應的圖片,通過下面的左連接查詢可以看出它們之間具有明顯的一對多關係:

SELECT P.PRODUCT_ID, P.PROD_NAME, PI.IMAGE_URL
FROM PRODUCT_INFO P
         LEFT JOIN PRODUCT_IMAGE PI
                   ON P.PRODUCT_ID = PI.PRODUCT_ID

按照傳統的思維我們的分頁語句會這麼寫:

    <resultMap id="ProductDTO" type="cn.felord.mybatis.entity.ProductDTO">
        <id property="productId" column="product_id"/>
        <result property="prodName" column="prod_name"/>
        <collection property="imageUrls"  ofType="string">
            <result column="image_url"/>
        </collection>
    </resultMap>

    <select id="page" resultMap="ProductDTO">
        SELECT P.PRODUCT_ID, P.PROD_NAME,PI.IMAGE_URL
        FROM PRODUCT_INFO P
                 LEFT JOIN PRODUCT_IMAGE PI
                           ON P.PRODUCT_ID = PI.PRODUCT_ID
        LIMIT #{current},#{size}
    </select>               

當我按照預想傳入了(0,2)想拿到前兩個產品的數據,結果並不是我期望的:

2020-06-21 23:35:54.515 DEBUG 10980 --- [main] c.f.m.mappers.ProductInfoMapper.page     : ==>  Preparing: SELECT P.PRODUCT_ID, P.PROD_NAME,PI.IMAGE_URL FROM PRODUCT_INFO P LEFT JOIN PRODUCT_IMAGE PI ON P.PRODUCT_ID = PI.PRODUCT_ID limit ?,? 
2020-06-21 23:35:54.541 DEBUG 10980 --- [main] c.f.m.mappers.ProductInfoMapper.page     : ==> Parameters: 0(Long), 2(Long)
2020-06-21 23:35:54.565 DEBUG 10980 --- [main] c.f.m.mappers.ProductInfoMapper.page     : <==      Total: 2
page = [ProductDTO{productId=1, prodName='杯子', imageUrls=[http://asset.felord.cn/cup1.png, http://asset.felord.cn/cup2.png]}]

我期望的兩條數據是杯子和筆記本,但是結果卻只有一條。原來當一對多映射時結果集會按照多的一側進行輸出(期望4條數據,實際上會有7條),而前兩條展示的只會是杯子的數據(如上圖),合併后就只有一條結果了,這樣分頁就對不上了。那麼如何才能達到我們期望的分頁效果呢?

3. 正確的方式

正確的思路是應該先對主表進行分頁,再關聯從表進行查詢。

拋開框架,我們的SQL應該先對產品表進行分頁查詢然後再左關聯圖片表進行查詢:

SELECT P.PRODUCT_ID, P.PROD_NAME, PI.IMAGE_URL
FROM (SELECT PRODUCT_ID, PROD_NAME
      FROM PRODUCT_INFO
      LIMIT #{current},#{size}) P
         LEFT JOIN PRODUCT_IMAGE PI
                   ON P.PRODUCT_ID = PI.PRODUCT_ID

這種寫法的好處就是通用性強一些。但是MyBatis提供了一個相對優雅的路子,思路依然是開頭所說的思路。只不過我們需要改造上面的Mybatis XML配置:

<resultMap id="ProductDTO" type="cn.felord.mybatis.entity.ProductDTO">
    <id property="productId" column="product_id"/>
    <result property="prodName" column="prod_name"/>
     <!-- 利用 collection 標籤提供的 select 特性 和 column   -->
    <collection property="imageUrls" ofType="string" select="selectImagesByProductId" column="product_id"/>
</resultMap>
<!-- 先查詢主表的分頁數據    -->
<select id="page" resultMap="ProductDTO">
    SELECT PRODUCT_ID, PROD_NAME
    FROM PRODUCT_INFO
    LIMIT #{current},#{size}
</select>
<!--根據productId 查詢對應的圖片-->
<select id="selectImagesByProductId" resultType="string">
    SELECT IMAGE_URL
    FROM PRODUCT_IMAGE
    WHERE PRODUCT_ID = #{productId}
</select>

4. 總結

大部分情況下分頁是很容易的,但是一對多還是有一些小小的陷阱的。一旦我們了解了其中的機制,也並不難解決。當然如果你有更好的解決方案可以留言討論,集思廣益。多多關注:碼農小胖哥,獲取更多開發技巧。

關注公眾號:Felordcn 獲取更多資訊

個人博客:https://felord.cn

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

2014第三屆混合動力汽車技術高峰會議

展會主題:
時間:2014年06月26日 至 2014年06月27日
地點:Sheraton Shanghai Hongqiao Hotel
主辦單位:Merisis Consulting

會議背景介紹:

在中國日益嚴重的環境污染壓力和“霧霾”陰影籠罩下,混合動力及純電動汽車的發展形成了勢在必行的趨勢。即使《節能與新能源汽車產業發展規劃》以及四部委聯合發佈的《關於繼續開展新能源汽車推廣應用工作的通知》中明確了純電動以及插電式混合動力汽車的補貼政策,第二批新能源汽車試點運行城市也出臺在即,但新能源汽車產業的前景仍然未能明朗化,標準不統一,基礎建設不健全,電池技術受到局限的電動車以及補貼政策不明確的混合動力汽車都面臨各自發展的瓶頸。在全球並未形成一種成熟應用模式的狀況下,中國應該走出怎樣的一條有自我特色的路線圖。

上海麥瑞賽公司舉辦的混合動力技術峰會將在2014年走入第三個年頭,今年的活動將以“技術驅動混合動力汽車市場化”為主題,探討更多整車廠以及關鍵零部件廠商們共同關注的電池、動力總成、變速箱等關鍵技術,也會融合更多探索純電動車,燃料電池汽車及混合動力汽車未來政策趨勢,商業模式以及標準推進方面的資訊。

我們希望本次峰會可以幫助更多業界同仁通過會議的一手資訊更好的判斷行業未來走向,並且在交換前沿及最新技術,展示領先產品的同時,汲取海外整車廠以及頂尖廠商的經驗,推動整車廠們對純電動及混合動力汽車的研發和市場化的進展。也説明技術/材料/產品提供商們展示自身最新研發和技術成果,並在此平臺上找到與整車商項目以及需求的契合點,獲得在中國本土市場上更多的推廣機會和品牌知名度。

關鍵議題:

  • 如何降低新能源汽車成本並提高市場接受度
  • 技術轉化成產業化,依靠企業還是政策
  • 未來HEV的補貼政策出臺的大致時間表
  • 不同整車廠在底盤系統及變速箱方面的新技術進展
  • 整車集成 / 電機集成的項目方案和合作資源,找到適合自身的合作夥伴
  • 探討近年鋰電池安全事故頻發,如何增加安全性。其他電池安全評估現狀如何
  • PHEV的現有技術的最新進展
  • 如何像特拉斯一樣從根本上顛覆傳統汽車設計

 

部分已確認演講嘉賓:

孟凡一    秘書長    中國機電產品進出口商會汽車分會
張銅柱    高級工程師    中國汽車技術研究中心
劉彥龍    副秘書長    中國化學與物理電源行業協會
鄧先泉    新能源汽車研究所所長    深圳市五洲龍汽車有限公司
Phil Barker    合動力及電動車輛產品總工程師    蓮花汽車科技工程公司
梁春奇    總工程師    長城汽車研究院  底盤研究院院長
徐嚴冬    總工程師    上海電驅動股份有限公司

欲瞭解更多詳情,請登錄官網:

聯繫方式:

聯繫電話:021-61808505*212
手 機:15900722272
傳 真:021-61808511
郵 件:
聯 系 人:萬小姐
網 址:

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

第五屆中國國際新能源汽車及配套設施展覽會

日期:2014年11月20 – 22日
地點:中國國際展覽中心(三元橋)

NEVIP2014概況

開館時間:週四—週六
展會主題:匯新興、享低碳生活
展會規模:22000 m2(1、2、3、4、5館)
汽車(天然氣汽車)展區14000m2+ 配套設施展區3000m2+ 電機及零部件展區3000m2+ 電池展區2000m2;參展資格:註冊資金需在500萬人民幣以上。
展會活動:中國國際新能源汽車產業促進推廣周+20餘場專題活動
同期舉辦:第六屆中國國際汽車製造業博覽會
企業數量:200家以上、國際企業(含港、澳、台):30%以上
觀眾數量:超過8000名與會者、超過70%與會者來自中國以及亞太地區
全球彙聚:中國、奧地利、比利時、加拿大、捷克共和國、丹麥、芬蘭、法國、德國、希臘、香港特別行政區、以色列、義大利、日本、韓國、荷蘭、紐西蘭、俄羅斯、新加坡、西班牙瑞典、瑞士、台灣地區、英國等31個國家及地區以上企業構成。
主辦單位:中國國際貿易促進委員會、中國汽車技術研究中心、中國電池工業協會
支援單位:國家發展和改革委員會、國家科技部、 國家財政部、國家工信部、國家能源局、國務院發展研究中心
協辦單位:中國汽車工業協會、中國汽車工程學會、世界電動車協會、亞洲電池協會、中國城市發展研究會、中國汽車工程學會電動車分會、清華大學汽車研究所、加中貿易理事會、德國工商總會
合作單位:中國汽車工業工程公司、機械工業部第四設計研究院、機械工業部第九設計研究院、東風汽車設計研究院、中國汽車工程研究院、北京汽車研究院 
承辦單位:中國國際貿易促進委員會經濟資訊部、中國國際經濟技術合作諮詢公司、東都國際展覽(北京)有限公司、中國汽車技術研究中心汽車技術情報研究所

NEVIP行業背景

隨著國際不可再生資源的日益匱乏,在能源與環保的壓力下,新能源汽車無疑將成為未來汽車的發展方向。根據出臺的《汽車產業調整和振興規劃》提出的發展目標,今後三年內我國要形成50萬輛純電動、充電式混合動力和普通型混合動力等新能源汽車產能,新能源汽車銷量占乘用車銷售總量的5%左右,到2030年,電動汽車保有量占汽車保有量50%以上,年生產銷售電動汽車1000萬—1950萬輛。而要實現這一目標,政府的扶持將會是電動汽車產業在現階段得以穩步發展的最有力的驅動。

NEVIP展會介紹

中國國際新能源汽車及配套設施展覽會(簡稱 nevip),創辦於2010年,由中國國際貿易促進委員牽頭舉辦,至今已成功舉辦4屆,自2014年起,得到了中國汽車技術研究中心、中國電池工業協會的加盟合作,與中國貿促會共同主辦,之後被定位於中國新能源汽車領域的國家級、國際性展覽盛會。 

nevip舉辦以來共吸引了來自30多國家和地區的500家展商,世界500強企業9家,專業觀眾累計超過40,000人次,展會面積達到50,000平米,目前已於17個國家大使館、商協會建立長期合作關係。 

nevip歷屆國內外著名參展企業有北汽、一汽、廣汽、長安、通用、日產、恒通、比亞迪、陸地方舟、大連森穀、寶雅、嘉遠、京儀敬業、永泰、貝迪、南方軸承、銀巢等整車及關鍵部件企業和ABB、西門子、施耐德、艾默生、Better Place、韓國KODI-S、德國拜耳、魏德米勒、普天、奧特迅、科陸、廣州南方電力、魯能、優科利爾、電巴、力神、突破電氣、嘉兆科技、艾普斯、凱翔、匯千、旗翔、凱源新能、宇能、亨通、上海永乾等基礎設施企業。

nevip觀眾主要來自行業:汽車公司、電力公司、石油公司、能源公司、公交公司、計程車公司、汽車諮詢公司、電力專案承包和管理公司及投資商、貿易商、代理機構、分銷商、施工單位、政府機構、行業協會、規劃設計單位、高等院校、 研發基地、技術與工程人員等。

展會有新華社、中央電視臺、中國日報、人民日報、光明日報、中國經營報、中國汽車報、中國能源報、汽車要聞、美國湯森路透、美國《The Truth About Cars》、財富雜誌、《美國汽車新聞•中國》、德國《auto motor undsport》、巴西《Brasil Economico》、英國《AutoCar》、《China car times》、AI《汽車製造業》、第一財經日報、華爾街日報及新華網、新浪、搜狐、人民網等國內外上百家媒體報導。

中國國際新能源汽車及配套設施展覽會(nevip 2014),將於2014年11月20日-22日在北京•中國國際展覽中心(三元橋)舉辦,歡迎您屆時參觀參展!

NEVIP2014展示內容 

  • 新能源汽車展區
    新能源汽車:混合動力、純電動(汽車、客車、公車、校車等),低排放、節能型汽車、電動代步車、電動特種車(環衛車、電力車、郵政車、小型客貨車、高爾夫車、房車、叉車、搬運車、牽引車、旅遊觀光車、醫療車、警用車等),氫能燃料電池汽車等; 
  • 零部件展區 
    零部件:電池、電機、電控:動力電池、儲能電池、電池管理系統BMS、鋰電池、燃料電池、超級電容器,無刷直流電機和永磁同步電機、開關磁阻電機,電驅動系統、整車匯流排與控制系統、動力總成等;低排放節能型發動機、混合動力發動機,電力電容器、電動助力轉向、電動空調、飛輪、逆變器、輪轂輪胎、儀錶儀盤、車燈、線束、車載電子、檢測修復設備、監控、防護儀器、內外裝飾及座椅等;
  • 配套基礎設施建設展區
    配套基礎設施建設:電動汽車充換電新模式、新技術、新產品;無線充電方案;充換電站智慧型網路專案規劃及成果展示;充電站配電設備、直接充換電設備、管理輔助設備、能源管理系統;換電機器人、機械臂、換電搬運設備、電池倉儲充電架;停車場充電設施、智慧監控、相關技術、連接器、線纜等; 
  • 電池技術展區
    電池及技術裝備:鋰離子電池、聚合物鋰離子電池、燃料電池、釩電池、超級電容器、鈉硫電池、鉛酸蓄電池;各系列新型動力、儲能電池;新型電池生產設備、測試儀器、充電器;新型電池材料及零配件;電池環保設備、回收處理技術等; 

NEVIP 2014怎麼收費

標準展位:外資企業:RMB 22000/9平方米  內資企業:RMB 16800/9平方米
光地展位:外資企業:RMB 2200/每平方米  內資企業:RMB1600/每平方米
展位搭建說明:光地起租面積為36平方米,展商可自行選擇展館內以規劃好相應面積的展位,並自行雇傭搭建商進行展位的設計與搭建,或選擇標準展位搭建。標準展位包含楣板、牆板、地毯 5A/220V
電源插座展位元照明,展位元日常清潔基本傢俱配置。(注:雙開口展位另加收10%展位費)

NEVIP 2014技術交流會

展會期間,組委會將協助參展企業在展館會議室舉辦技術交流講座,內容由企業自定,每場聽眾60-80人,由企業自行邀請,組委會協助組織,並於2014年10月1日前將講座題目主要內容主講人姓名提交組委會。講座場次有限,報滿為止,每場講座60分鐘,費用¥8,000元/場。

怎樣在NEVIP 2014中國最具影響力的新能源汽車展會上凸顯您的品牌?

我們提供的一攬子贊助計畫將能最大程度滿足您市場宣傳的需要,助推您的企業:

  • 在會展宣傳資料中充分介紹
  • 在全新的NEVIP 2014網站上作線上展示
  • 觀眾、參展商胸卡、掛帶、手提袋贊助
  • 論壇相關贊助
  • 現場拱門、看板、旗杆廣告贊助

詳情請登錄官方網址 或聯繫我們:
地址:中國北京市東城區和平里東土城路甲14號8層  郵編:100013
電  話:+86 010-52338120
傳  真:+86 010 -62500724
E-mail:

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

拿來即用:用C+JS結構來處理JSON數據

【面對的問題】

        在物聯網產品的開發過程中,對JSON格式的數據處理是一個強需求,例如亞馬遜的 AWS IOT平台,設備與後台之間的通訊數據都是JSON格式,先瞄一眼大概的樣子:

     這是一個真實產品的通訊數據,設備端的代碼C代碼中利用cJSON這個開源工具來完成JSON字符的解析和組裝工作。代碼我這裏就不貼了,解析函數很長,要滾動好多次鼠標滑輪。而且一不注意釋放資源就會發生內存泄漏!

    那麼,是否有更好的方式來解決這個問題呢?

    答案就是這篇文章介紹的duktape引擎!

【Duktape簡介】

    這裏只是簡單介紹下duktape,詳細的介紹大家自己去google。

    Duktape 是一個嵌入式 Javascript引擎,專註於可移植性和空間佔用。

    易於集成到C/C++項目中,使用API實現C代碼與JS代碼的雙向調用。

 

【代碼說明】

1.文件說明

 

 

    duktape.c:引擎主要C文件。

    duktape.h:引擎頭文件。

    main.c      :  main函數所在文件。

   main.js      :Javascript文件,處理業務邏輯的代碼就放在這裏。

    Makefile   :  編譯腳本。

    miniz.c     :有時候為了js代碼的保密,不能把js源碼放到最終產品中,需要壓縮和混淆;加載的時候再進行解壓。

2.核心步驟 

 

    當C代碼中需要對JSON格式的字符串進行處理時,把JSON數據通過棧結構傳給JS程序,在JS程序中處理數據之後,把處理結果再返回給C程序中。

    在JS程序中,如果有些操作無法處理(例如:發送數據給串口),那麼就調用C程序中的函數來處理。

3.代碼說明

 

 

【測試環境】

1. x86系統

    我是在  Ubuntu16.04 下測試的,使用系統自帶 gcc 編譯器。

2.嵌入式系統

    只需要把編譯器換成對應的交叉編譯器即可。

 

【END】

1.這是原創文章,請尊重版權。如需轉載,請保留全部內容並註明來源。如果方便的話,請聯繫我確認。

2.文章中如有錯誤,或者希望交流、探討相關內容,非常歡迎聯繫我。

3.郵箱:sewain@126.com

4.公眾號:IOT物聯網小鎮

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

氣候變遷衝擊農民生計 菲青年下鄉助行銷轉型

摘錄自2019年10月2日中央社報導

菲律賓存在乾季和雨季,但氣候變遷改變降雨季節,衝擊農民生計。為此,25名菲律賓青年創業家組成的「根源聯合會」(Roots Collective)與「和平與公平基金會」(Peace and Equity Foundation)合作,即日起到6日在位於大馬尼拉「波尼法西奧堡環球城」(BGC)的商場展售在地農民、手工藝工作者與社會企業合作開發的織品、包包、鞋子、食品及日用品。

青年創業家佛蘭查(John Francia)與夥伴創立「編織工藝」(Woven Crafts),行銷販售來自菲律賓東部薩馬省(Samar)巴席鎮(Basey)的織品,並開發出筆電包、手拿包、化妝包等新產品。佛蘭查說,他們正把觸角延伸到民答那峨島和2017年受叛亂襲擊的馬拉韋市(Marawi)等地,希望開發新的工藝素材,幫助更多菲律賓貧困社區提高收入、脫離貧窮。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

萬安灘因探勘石油與中對峙 越南學者籲提交聯合國安理會

摘錄自2019年10月7日中央社報導

中國7月起派遣探勘船「海洋地質8號」等船隻進入南沙群島最西側淺灘萬安灘(Vanguard Bank)探勘石油,越南將萬安灘稱為思政灘(Tu Chinh),聲稱依據聯合國海洋法公約,萬安灘位於越南200海里專屬經濟區內,出動相關船隻阻擾,與中方船隻發生對峙,越方並多次向中方抗議。兩國對峙數月,越南法律政策與發展研究所6日舉行座談會,與會學者建議越南將中國近期在萬安灘海域所採取威脅和武力行為提交聯合國安全理事會。

學者表示,中國近年來企圖將整個南海變成「家裡水池」,對東沙、西沙、中沙和南沙四大群島提出主權聲索,其中主張在與越南有爭議的西沙和南沙兩個群島設立專屬經濟區和大陸棚,目的是將沒有爭議海域變成有爭議海域,從而提出「共同資源開採」的聲索。

越南法律政策與發展研究所所長黃玉交(HoangNgoc Giao)表示,中國近年來在南海採取的行為,尤其是近期在歸屬越南專屬經濟區的萬安灘海域的既威脅又使用武力的行為,已違反聯合國憲章;國際社會反應也顯示,這是威脅區域和平、安全以及違反國際法基本原則的行為,中國不僅侵犯越南海域,還侵犯馬來西亞和菲律賓海域。越南應趁著擔任聯合國安理會2020年至2021年非常任理事國之際,將中國在南海威脅和武力行為向聯合國安理會提交。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

Halcon斑點分析BlobAnalysis解析

斑點分析的算法非常簡單:在圖像中,相關對象的像素(也稱為前景)通過其灰度值來識別。例如,圖中示例显示了液體中的組織顆粒。這些粒子是明亮的,液體(背景)是暗的。通過選擇明亮的像素(閾值),可以很容易檢測到顆粒。在許多應用中,暗像素和亮像素的簡單條件不再成立,但結果相同可以通過額外的預處理或像素選擇/分組的替代方法來實現。

在這種情況下,斑點分析的優點是HALCON提供了大量算子使其具有極大的靈活性。此外,這些方法通常具有很高的性能。斑點分析也可以與許多其他視覺任務相結合,例如作為預處理步驟,靈活地生成交互區域。

基本概念

斑點分析主要包括三個部分:

  1. 獲取圖像

  2. 分割圖像

    採集圖像后,接下來的任務是選擇前景像素。這也稱為分割。結果
    在HALCON中通常將此過程為Blob(二進制大對象),數據類型為區域(a region)。

  3. 提取目標特徵

    在最後一步中,將計算出諸如面積(像素數),重心或方向之類的特徵

該基本概念的一個示例是以下程序,該程序屬於上述示例。在此,從文件中獲取圖像。使用閾值(threshold)選擇大於120的所有像素。然後,引入了一個不太明顯的步驟:算子連接(connection)將所有亮像素的集合分離為所謂的連接組件。此步驟的效果是我們將劃分出多個區域,而不是閾值(threshold)返回的單個區域。該程序的最後一步是一些功能的計算。在此,算子area_center確定了大小(像素數)和重心。請注意area_center返回了三個值(每個參數有一個值)。

read_image (Image, 'particle')
threshold (Image, BrightPixels, 120, 255)
connection (BrightPixels, Particles)
area_center (Particles, Area, Row, Column)

擴展概念

在許多情況下,斑點分析將比上述示例更高級。原因是混亂或不均勻的照明。此外,經常需要進行后處理,例如將元素特徵轉換為真實世界單位或結果可視化。

使用RIO(Region Of Interest)

可以通過使用感興趣區域來加快斑點分析。搜索的斑點區域被限制越多。搜索將更快更強大。

對齊RIO或圖像

在某些應用中,關注區域必須相對於另一個對象對齊。或者圖像本身可以對齊,例如通過旋轉或裁剪。

校正圖像

與對齊類似,可能需要校正圖像,例如消除鏡頭畸變或轉換圖像的參考點。

預處理圖像(過濾)

下一個重要部分是圖像的預處理。在這裏,像mean_image或gauss_filter這樣的運算符可用於消除噪音。一個快速但不太完美的替代方案是binomial_filter。運算符middle_image對於抑制小斑點或細線很有用。算子anisotropic_diffusion(各向異性擴散)對保留邊緣的平滑很有用,最後使用fill_interlace消除由隔行交錯相機(攝像機視頻流圖像)引起的缺陷

提取分割參數

代替使用固定的閾值,可以為每個圖像動態提取它們。例如具有多個峰值的灰度值直方圖,每個對象類別一個。在這裏,您可以使用算子gray_histo_abs和histo_to_thresh。作為高級替代方案,可以將算子intensity與參考圖像結合使用,僅適用於背景:在設置過程中,將確定背景區域的平均灰度值。如果平均灰度值已更改,則可以相應調整閾值。

分割圖像

對於分割,可以使用各種方法。最簡單的方法是threshold(閾值),指定一個屬於前景對象的值範圍。另一個非常常見的方法是dyn_threshold。在此,第二張圖像將作為參考圖像。通過這種方法,使用局部閾值而不是全局閾值。這些局部閾值存儲在參考圖像中。可以通過拍攝空背景圖片將其設為靜態作為參考圖像,也可以使用平滑濾鏡(例如mean_image)

處理區域

一旦斑點區域被分割。通常需要對其進行修改,例如,通過抑制小區域,給定方向或接近其他區域的區域。在這種情況下,形態算子open_circle和opening_rectangle通常可用於抑制噪聲,closeing_circle和closing-rectanglel填補空白。可以使用select_shape,select_shape_std和select-proto-proto選擇具有特定功能的斑點。

特徵提取

最終處理時,將提取斑點的特徵,所需功能的類型取決於應用程序。類型列表可以在參考手冊的“Regions/Features”和”Image/Features”中找到。

將結果轉換為世界坐標

諸如面積或重心之類的要素通常必須轉換為世界坐標。這可以通過HALCON相機
校準實現。

可視化結果

最後,你可能要显示圖像的斑點(區域)和特徵。

靈感來源於Halcon官方文檔

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

Google 懸賞 3,000 萬,縮小逆變器體積至十分之一

 

對綠能產業相當關心的 Google,在分散式能源領域,當然也不會缺席。今年 5 月,Google 公布「小盒計畫(Little Box Challenge)」,若是有員工能研發出縮小版的逆變器,就能獲得 100 萬美元(約合新台幣 3,000 萬元)獎金。而最近 Google 將這項計畫對外開放,參賽者在 2015 年 7 月前都能報名參加,最後交由電機電子工程師學會(IEEE)評選出優勝者。

逆變器在綠能產業中扮演關鍵性的角色,舉凡連接太陽能板、風力發電機、電動車等電網裝置,都需要逆變器參與其中,而逆變器的主要用途就是把太陽能板接收能量後產生的直流電,轉換為交流電併入電網當中;電動車作為電力儲存裝置時,若要將電能輸出,也同樣必須藉由逆變器轉換為交流電併入電網。    
 

   
逆變器體積縮小有利微電網發展   然而,隨著屋頂太陽能板裝設越來越普遍,龐大的逆變器顯得笨重又不符合效益,這也是 Google 為何如此迫切希望大幅縮小逆變器的體積與重量的原因。   Google 的「小盒計畫」希望將逆變器體積縮為現在的十分之一,相當於一台小筆電的大小;每立方英吋的功率密度須超過 50 瓦特;轉換效率最低值至少為 95%;耐高溫性的部分,須可承受攝氏 60 度的高溫,其他標準則包括一些能讓逆變器與電網連結作用的規格限制。而綜結以上這些規格,最重要的,當然還是參賽者能否縮小逆變器的體積大小了。  
 

      假如能研發出小型逆變器,Google 希望能在偏遠地區打造低成本的微電網,或在停電時,能以電動車維持穩定電力供給,讓他們在綠能產業的佈局上,又多了一項投資。   在矽谷科技企業中,Google 對綠能的投資可說是最不手軟的一家,綠能涉獵範圍也最廣泛。就如先前《科技新報》提到的,過去 5 年內,Google 在太陽能與風能等綠能上的投資,已超過 10 億美元。除了持有「大西洋風能網」項目建設中 37.5 % 的股份、投資美國離岸風力發電骨幹計畫 50 億美元外,在電網上的參與也越來越活躍。   過去幾個月以來,Google 開發名為「顛覆電網(Bottom Up Grid)」的專案,陸續招募電力或電子工程師,希望能從最根本改善電力轉換系統。看來現在除了佈局綠能產業外,與綠能息息相關的電網系統,也成為 Google 改革的目標了。   本文全文授權自《科技新報》──  

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

技術乾貨丨卷積神經網絡之LeNet-5遷移實踐案例

摘要:LeNet-5是Yann LeCun在1998年設計的用於手寫数字識別的卷積神經網絡,當年美國大多數銀行就是用它來識別支票上面的手寫数字的,它是早期卷積神經網絡中最有代表性的實驗系統之一。可以說,LeNet-5就相當於編程語言入門中的“Hello world!”。

華為的昇騰訓練芯片一直是大家所期待的,目前已經開始提供公測,如何在昇騰訓練芯片上運行一個訓練任務,這是目前很多人都在采坑過程中,所以我寫了一篇指導文章,附帶上所有相關源代碼。注意,本文並沒有包含環境的安裝,請查看另外相關文檔。

環境約束:昇騰910目前僅配套TensorFlow 1.15版本。

基礎鏡像上傳之後,我們需要啟動鏡像命令,以下命令掛載了8塊卡(單機所有卡):

docker run -it –net=host –device=/dev/davinci0 –device=/dev/davinci1 –device=/dev/davinci2 –device=/dev/davinci3 –device=/dev/davinci4 –device=/dev/davinci5 –device=/dev/davinci6 –device=/dev/davinci7 –device=/dev/davinci_manager –device=/dev/devmm_svm –device=/dev/hisi_hdc -v /var/log/npu/slog/container/docker:/var/log/npu/slog -v /var/log/npu/conf/slog/slog.conf:/var/log/npu/conf/slog/slog.conf -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ -v /usr/local/Ascend/driver/tools/:/usr/local/Ascend/driver/tools/ -v /data/:/data/ -v /home/code:/home/local/code -v ~/context:/cache ubuntu_18.04-docker.arm64v8:v2 /bin/bash

設置環境變量並啟動手寫字訓練網絡:

#!/bin/bash
export LD_LIBRARY_PATH=/usr/local/lib/:/usr/local/HiAI/runtime/lib64
export PATH=/usr/local/HiAI/runtime/ccec_compiler/bin:$PATH
export CUSTOM_OP_LIB_PATH=/usr/local/HiAI/runtime/ops/framework/built-in/tensorflow
export DDK_VERSION_PATH=/usr/local/HiAI/runtime/ddk_info
export WHICH_OP=GEOP
export NEW_GE_FE_ID=1
export GE_AICPU_FLAG=1
export OPTION_EXEC_EXTERN_PLUGIN_PATH=/usr/local/HiAI/runtime/lib64/plugin/opskernel/libfe.so:/usr/local/HiAI/runtime/lib64/plugin/opskernel/libaicpu_plugin.so:/usr/local/HiAI/runtime/lib64/plugin/opskernel/libge_local_engine.so:/usr/local/H
iAI/runtime/lib64/plugin/opskernel/librts_engine.so:/usr/local/HiAI/runtime/lib64/libhccl.so
 
export OP_PROTOLIB_PATH=/usr/local/HiAI/runtime/ops/built-in/
 
export DEVICE_ID=2
export PRINT_MODEL=1
#export DUMP_GE_GRAPH=2
 
#export DISABLE_REUSE_MEMORY=1
#export DUMP_OP=1
#export SLOG_PRINT_TO_STDOUT=1
 
export RANK_ID=0
export RANK_SIZE=1
export JOB_ID=10087
export OPTION_PROTO_LIB_PATH=/usr/local/HiAI/runtime/ops/op_proto/built-in/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Ascend/fwkacllib/lib64/:/usr/local/Ascend/driver/lib64/common/:/usr/local/Ascend/driver/lib64/driver/:/usr/local/Ascend/add-ons/
export PYTHONPATH=$PYTHONPATH:/usr/local/Ascend/opp/op_impl/built-in/ai_core/tbe
export PATH=$PATH:/usr/local/Ascend/fwkacllib/ccec_compiler/bin
export ASCEND_HOME=/usr/local/Ascend
export ASCEND_OPP_PATH=/usr/local/Ascend/opp
export SOC_VERSION=Ascend910
 
rm -f *.pbtxt
rm -f *.txt
rm -r /var/log/npu/slog/*.log
rm -rf train_url/*
 
 
python3 mnist_train.py

以下訓練案例中我使用的lecun大師的LeNet-5網絡,先簡單介紹LeNet-5網絡:

LeNet5誕生於1994年,是最早的卷積神經網絡之一,並且推動了深度學習領域的發展。自從1988年開始,在多年的研究和許多次成功的迭代后,這項由Yann LeCun完成的開拓性成果被命名為LeNet5。

LeNet-5包含七層,不包括輸入,每一層都包含可訓練參數(權重),當時使用的輸入數據是32*32像素的圖像。下面逐層介紹LeNet-5的結構,並且,卷積層將用Cx表示,子採樣層則被標記為Sx,完全連接層被標記為Fx,其中x是層索引。

層C1是具有六個5*5的卷積核的卷積層(convolution),特徵映射的大小為28*28,這樣可以防止輸入圖像的信息掉出卷積核邊界。C1包含156個可訓練參數和122304個連接。

層S2是輸出6個大小為14*14的特徵圖的子採樣層(subsampling/pooling)。每個特徵地圖中的每個單元連接到C1中的對應特徵地圖中的2*2個鄰域。S2中單位的四個輸入相加,然後乘以可訓練係數(權重),然後加到可訓練偏差(bias)。結果通過S形函數傳遞。由於2*2個感受域不重疊,因此S2中的特徵圖只有C1中的特徵圖的一半行數和列數。S2層有12個可訓練參數和5880個連接。

層C3是具有16個5-5的卷積核的卷積層。前六個C3特徵圖的輸入是S2中的三個特徵圖的每個連續子集,接下來的六個特徵圖的輸入則來自四個連續子集的輸入,接下來的三個特徵圖的輸入來自不連續的四個子集。最後,最後一個特徵圖的輸入來自S2所有特徵圖。C3層有1516個可訓練參數和156 000個連接。

層S4是與S2類似,大小為2*2,輸出為16個5*5的特徵圖。S4層有32個可訓練參數和2000個連接。

層C5是具有120個大小為5*5的卷積核的卷積層。每個單元連接到S4的所有16個特徵圖上的5*5鄰域。這裏,因為S4的特徵圖大小也是5*5,所以C5的輸出大小是1*1。因此S4和C5之間是完全連接的。C5被標記為卷積層,而不是完全連接的層,是因為如果LeNet-5輸入變得更大而其結構保持不變,則其輸出大小會大於1*1,即不是完全連接的層了。C5層有48120個可訓練連接。

F6層完全連接到C5,輸出84張特徵圖。它有10164個可訓練參數。這裏84與輸出層的設計有關。

LeNet的設計較為簡單,因此其處理複雜數據的能力有限;此外,在近年來的研究中許多學者已經發現全連接層的計算代價過大,而使用全部由卷積層組成的神經網絡。

LeNet-5網絡訓練腳本是mnist_train.py,具體代碼:

import os
import numpy as np
import tensorflow as tf
import time
from tensorflow.examples.tutorials.mnist import input_data
 
import mnist_inference
 
from npu_bridge.estimator import npu_ops #導入NPU算子庫
from tensorflow.core.protobuf.rewriter_config_pb2 import RewriterConfig #重寫tensorFlow里的配置,針對NPU的配置
 
 
batch_size = 100
learning_rate = 0.1
training_step = 10000
 
model_save_path = "./model/"
model_name = "model.ckpt"
 
def train(mnist):
    x = tf.placeholder(tf.float32, [batch_size, mnist_inference.image_size, mnist_inference.image_size, mnist_inference.num_channels], name = 'x-input')
    y_ = tf.placeholder(tf.float32, [batch_size, mnist_inference.num_labels], name = "y-input")
 
    regularizer = tf.contrib.layers.l2_regularizer(0.001)
    y = mnist_inference.inference(x, train = True, regularizer = regularizer) #推理過程
    global_step = tf.Variable(0, trainable=False)
    cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(logits = y, labels = tf.argmax(y_, 1)) #損失函數
    cross_entropy_mean = tf.reduce_mean(cross_entropy)
    loss = cross_entropy_mean + tf.add_n(tf.get_collection("loss"))
 
    train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss, global_step = global_step) #優化器調用
 
    saver = tf.train.Saver() #啟動訓練
 
#以下代碼是NPU所必須的代碼,開始配置參數
    config = tf.ConfigProto(
        allow_soft_placement = True,
        log_device_placement = False)
    custom_op =  config.graph_options.rewrite_options.custom_optimizers.add()
    custom_op.name =  "NpuOptimizer"
    custom_op.parameter_map["use_off_line"].b = True
    #custom_op.parameter_map["profiling_mode"].b = True
    #custom_op.parameter_map["profiling_options"].s = tf.compat.as_bytes("task_trace:training_trace")
config.graph_options.rewrite_options.remapping = RewriterConfig.OFF
#配置參數結束
 
    writer = tf.summary.FileWriter("./log_dir", tf.get_default_graph())
    writer.close()
 
 
#參數初始化
    with tf.Session(config = config) as sess:
        tf.global_variables_initializer().run()
 
        start_time = time.time()
 
        for i in range(training_step):
xs, ys = mnist.train.next_batch(batch_size)
            reshaped_xs = np.reshape(xs, (batch_size, mnist_inference.image_size, mnist_inference.image_size, mnist_inference.num_channels))
            _, loss_value, step = sess.run([train_step, loss, global_step], feed_dict={x:reshaped_xs, y_:ys})
 
            #每訓練10個epoch打印損失函數輸出日誌
            if i % 10 == 0:
                print("****************************++++++++++++++++++++++++++++++++*************************************\n" * 10)
                print("After %d training steps, loss on training batch is %g, total time in this 1000 steps is %s." % (step, loss_value, time.time() - start_time))
                #saver.save(sess, os.path.join(model_save_path, model_name), global_step = global_step)
                print("****************************++++++++++++++++++++++++++++++++*************************************\n" * 10)
                start_time = time.time()
def main():
    mnist = input_data.read_data_sets('MNIST_DATA/', one_hot= True)
    train(mnist)
 
if __name__ == "__main__":
    main()

本文主要講述了經典卷積神經網絡之LeNet-5網絡模型和遷移至昇騰D910的實現,希望大家快來動手操作一下試試看!

 

點擊關注,第一時間了解華為雲新鮮技術~

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心