Android 安卓人臉識(shí)別(百度人臉識(shí)別)快速集成采坑

背景介紹

你的項(xiàng)目跟人工智能無(wú)關(guān)母怜?自己手寫(xiě)不可行?看完本文小白也能2小時(shí)讓你的應(yīng)用具備人臉識(shí)別活體檢測(cè)等等功能啦眉孩!近兩年炒的最火的就是人工智能了咕别,但是到處都講人工智能技健,區(qū)塊鏈啥啥的,總感覺(jué)跟普通安卓應(yīng)用開(kāi)發(fā)沒(méi)多大關(guān)系惰拱。

最近有點(diǎn)閑得蛋疼啊雌贱,于是找了有關(guān)于指紋識(shí)別,人臉識(shí)別方面的技術(shù)博客,但是少之又少啊不能快速的集成到自己項(xiàng)目帽芽∩鞠疲基于本人對(duì)百度是比較偏愛(ài)的,于是乎看了下官網(wǎng)就直接上車(chē)了导街,大概一天下來(lái)就ok了披泪。我是小白啊,這篇文章是基于小白的搬瑰,如果你是技術(shù)大牛款票,可以忽略了。

目前百度人臉識(shí)別調(diào)用完全免費(fèi)的(號(hào)稱(chēng)宣布永久免費(fèi)使用哦泽论,算是業(yè)界良心了)艾少,企業(yè)認(rèn)證后可以免費(fèi)10QPS限制調(diào)用,所謂QPS限制也就是一秒鐘10次內(nèi)的調(diào)用翼悴,每秒10次調(diào)用可以滿(mǎn)足一些小型企業(yè)了缚够。免費(fèi)和付費(fèi)的唯一區(qū)別就是QPS限制調(diào)用量不同。再說(shuō)了用戶(hù)量多了鹦赎,給點(diǎn)錢(qián)也是應(yīng)該的吧谍椅,老板也不會(huì)在乎這點(diǎn)錢(qián)的吧(幾百塊一月不等)。

集成百度sdk基本上可以直接copy示例demo直接在自己項(xiàng)目運(yùn)行古话,順利的話(huà)大概半天雏吭,跟著我的文章大概兩小時(shí)足夠!不過(guò)你開(kāi)始得有百度AI開(kāi)放平臺(tái)賬戶(hù)及企業(yè)認(rèn)證(工作日內(nèi)認(rèn)證大概4小時(shí)陪踩,最遲不會(huì)超過(guò)一天杖们,周末都有人審核這點(diǎn)和給力了),集成過(guò)程中你看完整個(gè)文章肩狂,應(yīng)該避免了一些問(wèn)題摘完,一天內(nèi)應(yīng)該可以讓自己的項(xiàng)目跑起來(lái)。下面全部為快速集成 Android離線(xiàn)采集sdk 人臉登錄示例過(guò)程(粗略大概3分鐘可看完本文婚温,文末有巨型福利)为肮。

進(jìn)去百度AI開(kāi)發(fā)者官網(wǎng)垃僚,人臉識(shí)別提供了幾種解決方案榔昔,集成大多類(lèi)似零蓉。因?yàn)槲覀兊臉I(yè)務(wù)場(chǎng)景是需要用到人臉登錄涛癌,人臉簽到功能昼接,所以我選擇了 Android離線(xiàn)采集sdk洞斯。具體選擇哪種根據(jù)自己的需求選擇即可尝丐。

目前市面上做人臉?lè)矫娴墓痉浅6嗖舯疲信e幾個(gè):

百度人臉識(shí)別 Face++ 商湯科技 騰訊 虹軟

當(dāng)然還有一些其他的吃媒,目前比較出名的大概就這些,差別其實(shí)更多是在技術(shù)支持上(至少我是這么認(rèn)為的)以及費(fèi)用,據(jù)我了解:百度赘那、Face++刑桑、虹軟,大概對(duì)比下:

百度人臉識(shí)

優(yōu)點(diǎn):價(jià)格便宜募舟,客服很友好

缺點(diǎn):待發(fā)掘

Face++

優(yōu)點(diǎn):技術(shù)更好祠斧,文檔很清晰,因?yàn)闆](méi)有接入暫且不知道技術(shù)支持怎么樣不過(guò)應(yīng)該不差

缺點(diǎn):有點(diǎn)小貴

虹軟

優(yōu)點(diǎn):全套離線(xiàn)拱礁,后臺(tái)前端都可以離線(xiàn)實(shí)現(xiàn)琢锋,文檔也挺詳細(xì)的

缺點(diǎn):看了下他們技術(shù)論壇,貌似問(wèn)題也不少呢灶,而且回復(fù)也不是很及時(shí)的樣子吴超,最主要是需要自己搭建一套,他們的人臉對(duì)比居然也是放在本地APP數(shù)據(jù)庫(kù)的(當(dāng)然這不算是缺點(diǎn)了)

說(shuō)了這么多鸯乃,想用啥自己選擇就行鲸阻,我們公司目前用的百度人臉識(shí)別,進(jìn)入正題不多BB缨睡。

一赘娄、注冊(cè)百度開(kāi)發(fā)者賬號(hào)

這個(gè)注冊(cè)企業(yè)認(rèn)證(工作日內(nèi)認(rèn)證大概4小時(shí),最遲不會(huì)超過(guò)一天宏蛉,周末都有人審核這點(diǎn)和給力了)遣臼,而且需要公司的資質(zhì)信息,我們當(dāng)時(shí)已經(jīng)有了所以我就直接拿來(lái)用拾并。如果你卡在沒(méi)有認(rèn)證無(wú)法下載sdk的話(huà)揍堰,我教你一招,問(wèn)下你公司運(yùn)營(yíng)說(shuō)你的項(xiàng)目需要某某功能微信某某認(rèn)證嗅义,需要公司營(yíng)業(yè)執(zhí)照?qǐng)D片屏歹,套路下不就有了啊,運(yùn)營(yíng)那里有公司執(zhí)照那些的之碗。實(shí)在不行看個(gè)體工商戶(hù)執(zhí)照行不行自己試試吧蝙眶。http://ai.baidu.com/

image.png

二、新建項(xiàng)目獲取授權(quán)文件

這一步算是前期測(cè)試的重要步驟褪那,先要到控制臺(tái)(默認(rèn)第一步已經(jīng)完成了)百度人臉識(shí)別鏈接

這個(gè)控制臺(tái)基本就是人臉識(shí)別的所有開(kāi)發(fā)SDK幽纷,技術(shù)資料的地方了,前端的SDK在SDK管理里面進(jìn)行下載

首先你需要在采集SDK管理里面下載授權(quán)文件博敬,他會(huì)讓你跟你據(jù)包名跟key的MD5來(lái)進(jìn)行生成友浸,具體步驟按著他們的操作就行了。這里也有官網(wǎng)集成步驟文檔http://ai.baidu.com/docs#/Face-Android-SDK/top

如下圖偏窝,最頂部 有問(wèn)題找客服可以提交工單收恢,有比較專(zhuān)業(yè)的專(zhuān)屬客服給你回答武学,回復(fù)速度大概也是4小時(shí)左右吧。下面有創(chuàng)建應(yīng)用伦意,左側(cè)有sdk下載入口火窒。

image.png

進(jìn)入下載授權(quán)文件是需要您的開(kāi)發(fā)者賬號(hào)企業(yè)認(rèn)證才可以進(jìn)入的哦。

image.png
image.png

這個(gè)授權(quán)文件下載后放在Android項(xiàng)目的assets 文件夾

SDK下載跟示例工程下載

在采集SDK管理這里下拉會(huì)看到下載SDK跟示例工程這兩欄

但是我建議你可以直接根據(jù)你們公司的業(yè)務(wù)需求下載對(duì)應(yīng)的示例工程驮肉,比如我下載的就是人臉登陸/考勤這個(gè)沛鸵,這里面已經(jīng)包含了全套的離線(xiàn)SDK功能(活體檢測(cè),人臉追蹤缆八,質(zhì)量檢測(cè)等等)曲掰,如果你要下載帶聲音的活體檢測(cè)demo,比如眨眨眼奈辰,張張嘴栏妖,下載帶有活體檢測(cè)功能的demo即可。如下圖:

image.png
image.png

這是人臉登錄示例demo運(yùn)行效果

image.png

這是 張張嘴眨眨眼語(yǔ)音提示活體檢測(cè)demo運(yùn)行效果

image.png

md5指紋:你自己的項(xiàng)目的簽名的md5指紋密碼奖恰,不懂的可以看下這篇文章吊趾。Android Studio生成簽名文件,自動(dòng)簽名,以及獲取SHA1和MD5值https://blog.csdn.net/it666dhw/article/details/80731021

我集成的是第一個(gè)人臉登錄sdk,下載完示例工程后把項(xiàng)目導(dǎo)入AS瑟啃,下面就是改動(dòng)下包名跟License

修改包名

在app build里面改成自己上圖里面的包名:com.test.facere(你自包名)

修改License

把剛下載的License文件導(dǎo)入到對(duì)應(yīng)的 assets包下论泛,修改工程里面Config.java類(lèi)的licenseID(上圖的)以及l(fā)icenseFileName(對(duì)應(yīng)License的文件名,和你下載時(shí)起的自定義名字一致)蛹屿,把對(duì)應(yīng)的ak屁奏,sk密碼改為你的對(duì)應(yīng)的即可

image.png

注意:包名改變后或?qū)氲阶约喉?xiàng)目的時(shí)候错负,運(yùn)行會(huì)報(bào)找不到R 文件錯(cuò)誤坟瓢,常見(jiàn)問(wèn)題啦不要方哈,一個(gè)個(gè)用到R文件的類(lèi)刪除R 文件的導(dǎo)包犹撒,然后自動(dòng)導(dǎo)包即可折联,就幾個(gè)類(lèi)用到而已。你也可以用切換項(xiàng)目packages 視圖下 识颊,將要改的包名改為你的項(xiàng)目的包名applicationId诚镰,然后必須clean ,在rebuild 就可祥款,建議一個(gè)個(gè)刪除自動(dòng)導(dǎo)包還快省事清笨。

image.png

以上兩步做完沒(méi)啥問(wèn)題示例工程就可以跑起來(lái)了。

運(yùn)行項(xiàng)目后镰踏,你可以自行看看人臉檢測(cè)的一些回調(diào)方法:
3.faceDetectManager.setOnTrackListener設(shè)置人臉檢測(cè)監(jiān)聽(tīng)器

回調(diào)方法是


publicvoidonTrack(FaceFilter.TrackedModel trackedModel)

乍一看這個(gè)回調(diào)跟


faceDetectManager.setOnFaceDetectListener

差不多函筋,其實(shí)如果仔細(xì)看FaceDetectManager這個(gè)類(lèi)的話(huà)會(huì)發(fā)現(xiàn)在


privatevoidprocess(int[] argb,intwidth,intheight, ArgbPool pool)

這個(gè)方法里面有這樣一段代碼


if(value ==0) {            faceFilter.filter(faces, frame);//等于0的時(shí)候才帶過(guò)去}if(listener !=null) {            listener.onDetectFace(value, faces, frame);//檢測(cè)人臉把value值也帶過(guò)去,用于判斷人臉位置}

當(dāng)value為0(表示是一張合格人臉)的時(shí)候會(huì)在FaceFilter中調(diào)用filter方法奠伪,并且在該方法中把一個(gè)單個(gè)face設(shè)置到onTrace回調(diào)中跌帐,如果listener不為空的話(huà)直接放到onDetectFace這個(gè)回調(diào)中,所以從這里也可以看出來(lái)其實(shí)

faceDetectManager.setOnFaceDetectListener

就是為了讓你獲取一張合格的人臉(可以在這個(gè)里面處理你具體的合格人臉操作)

回歸正題绊率,既然onTrace回調(diào)是一個(gè)合格的人臉就好辦了谨敛,可以直接拿到TrackedModel里面的人臉圖片和服務(wù)器進(jìn)行比對(duì),具體代碼邏輯示例代碼里面也已經(jīng)實(shí)現(xiàn)了滤否,對(duì)比結(jié)束后會(huì)返回一定的分?jǐn)?shù)給你脸狸,如果大于80或者你覺(jué)得的分?jǐn)?shù)就認(rèn)定這個(gè)是你在手機(jī)端注冊(cè)過(guò)的人臉,然后進(jìn)行邏輯處理藐俺。

遇到的小問(wèn)題

運(yùn)行demo后發(fā)現(xiàn)用一張圖片就可以識(shí)別通過(guò)炊甲,明明上面標(biāo)明了活體檢測(cè)呀,domo默認(rèn)是沒(méi)有開(kāi)啟活體檢測(cè)的欲芹,需要自行改下一個(gè)參數(shù)就好啦卿啡。

1.初始化application類(lèi)初始化

tracker.set_isCheckQuality(true);

// 是否進(jìn)行活體校驗(yàn)

tracker.set_isVerifyLive(true);

2.在**APIService **這個(gè)類(lèi)改動(dòng)下三個(gè)請(qǐng)求接口的參數(shù):

// 可以根據(jù)實(shí)際業(yè)務(wù)情況靈活調(diào)節(jié)

params.setQualityControl("NORMAL");

params.setLivenessControl("HIGH");//只有為HIGH時(shí)才會(huì)符合活體檢測(cè)要求。

改了這兩個(gè)地方一張圖片就通不過(guò)啦菱父,我也納悶了底層是怎么識(shí)別一張圖片是否是活體的颈娜,唉,對(duì)我來(lái)說(shuō)太高端了吧浙宜。官辽。。

在線(xiàn)請(qǐng)求活體檢測(cè)的接口

3.當(dāng)然文檔也給出了在線(xiàn)請(qǐng)求活體檢測(cè)的接口http://ai.baidu.com/docs#/Face-Liveness-V3/top可以返回圖片的活體質(zhì)量分?jǐn)?shù)值粟瞬,你可以根據(jù)這個(gè)返回值來(lái)判斷是否為活體同仆。按照官網(wǎng)文檔操作的時(shí)候還是有點(diǎn)坑了,那個(gè)參數(shù)傳的不對(duì)導(dǎo)致返回的數(shù)據(jù)為空裙品,調(diào)用在線(xiàn)活體檢測(cè)v3的api乓梨,一直報(bào){"error_code":222200,"error_msg":"request body should be json format"

image.png

Map<String, Object> map = new HashMap<>();

List<Object> list = new ArrayList<Object>();

String imge = AuthService.getImge();

map.put("image", imge);//總數(shù)據(jù)大小應(yīng)小于10M

map.put("face_field", "face_liveness,thresholds");

map.put("image_type", "BASE64");

list.add(map);

String param = GsonUtils.toJson(list);

復(fù)制拿去吧:


/**

* 在線(xiàn)活體檢測(cè)

*/

public class FaceVerify {

/**

    * 重要提示代碼中所需工具類(lèi)

    * FileUtil,Base64Util,HttpUtil,GsonUtils請(qǐng)從

    * https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72

* https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2

* https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3

* https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3

    * 下載

    * @param bmp

    */

    public static String faceVerify(Bitmap bmp) {

// 請(qǐng)求url

        String url ="https://aip.baidubce.com/rest/2.0/face/v3/faceverify";

Map map =new HashMap<>();

List list =new ArrayList();

byte[] bytes = Base64Util.bitmap2Bytes(bmp, Bitmap.CompressFormat.PNG);

String encodeImg = Base64Util.encode(bytes);

map.put("image", encodeImg);//總數(shù)據(jù)大小應(yīng)小于10M

        map.put("face_field","face_liveness,thresholds,quality,gender,age,face_type");

map.put("image_type","BASE64");

list.add(map);

try {

String param = GsonUtils.toJson(list);

// 注意這里僅為了簡(jiǎn)化編碼每一次請(qǐng)求都去獲取access_token,線(xiàn)上環(huán)境access_token有過(guò)期時(shí)間清酥, 客戶(hù)端可自行緩存扶镀,過(guò)期后重新獲取。

            String accessToken = AuthService.getAuth("kSxIGaaTKu9NlV2gxEI8GvoF","VoYRYgIukv6fYUoZYqoVwfUDhKTpQ4WW");

String result = HttpUtil.post(url, accessToken,"application/json", param);

System.out.println(result);

return result;

}catch (Exception e) {

e.printStackTrace();

}

return null;

}

}

圖片轉(zhuǎn)字節(jié)碼:


public static byte[] bitmap2Bytes(Bitmap bitmap, Bitmap.CompressFormat format) {

ByteArrayOutputStream baos =new ByteArrayOutputStream();

bitmap.compress(format,100, baos);

return baos.toByteArray();

}

原來(lái)先放到list里面在放到map里面就可以了焰轻,這了也是花了幾個(gè)小時(shí)臭觉,唉,平時(shí)太菜的緣故吧辱志。

下面是我用圖片和真人請(qǐng)求的返回值:

真人:{"error_code":0,"error_msg":"SUCCESS","log_id":510175652579,"timestamp":1541496726,"cached":0,"result":{"thresholds":{"frr_1e-4":0.05,"frr_1e-3":0.3,"frr_1e-2":0.9},"face_liveness":0.9999917365,

圖片:"result":{"thresholds":{"frr_1e-4":0.05,"frr_1e-3":0.3,"frr_1e-2":0.9},"face_liveness":0.9205907483,"

image.png

其實(shí)蝠筑,在APIService設(shè)置了請(qǐng)求參數(shù),就可以無(wú)需在請(qǐng)求此接口達(dá)到活體檢測(cè)目的揩懒。

params.setQualityControl("NORMAL");

params.setLivenessControl("HIGH");

4.另外百度sdk的so庫(kù)提供的是三個(gè)平臺(tái)的什乙,建議你的項(xiàng)目只編譯'armeabi-v7a'平臺(tái)即可,否則增加你的項(xiàng)目幾倍大已球,整個(gè)集成后大概多出6.5M吧還能接受臣镣。在你的app的build.grald 文件defaultConfig{}中

ndk {

//設(shè)置支持的SO庫(kù)架構(gòu)

abiFilters'armeabi-v7a'// , 'armeabi-v7a', 'arm64-v8a',armeabi

}

最后待解決問(wèn)題:

在我們的項(xiàng)目中現(xiàn)在bugly反饋日志有如下報(bào)錯(cuò)辅愿,每天有少量報(bào)錯(cuò)日志,有顯示后臺(tái)和前臺(tái)的忆某,我在幾個(gè)真機(jī)上是問(wèn)起沒(méi)問(wèn)題的点待,不知道用戶(hù)是手機(jī)硬件什么原因,提交工單客服回復(fù)說(shuō)只能拿到報(bào)錯(cuò)手機(jī)運(yùn)行官方demo才能說(shuō)明問(wèn)題弃舒,所有目前沒(méi)有找出原因癞埠。歡迎留言評(píng)論指正,有大佬有解決辦法可以私信告知哦聋呢。

14165 java.lang.Error

miscalculated data length!

com.baidu.aip.baidufacedemo.utils.Base64.decode(Base64.java:68)

好啦苗踪,關(guān)于百度人臉識(shí)別集成問(wèn)題就大功告成啦,有什么問(wèn)題歡迎指正私聊削锰。

光寫(xiě)文章沒(méi)有福利怎么可能通铲,那是永遠(yuǎn)都不可能的啦。

1.公眾號(hào):推薦兩個(gè)郭霖喂窟,鴻洋测暗,微信搜索其名字即可。這兩位都是知名博客大佬磨澡,但是關(guān)注公眾號(hào)可以每天在打發(fā)早上坐地鐵時(shí)間就吸收一波干貨了碗啄,一舉兩得有木有。當(dāng)然我知道在地鐵里你只會(huì)關(guān)注美女的哈哈稳摄。稚字。

2.Android 安卓UI 庫(kù)集合推薦:當(dāng)你的產(chǎn)品經(jīng)理需要你自定義根據(jù)心情改變手機(jī)主題顏色的時(shí)候,你就應(yīng)該想到到這里找找輪子了厦酬,收藏吧胆描,騷年。

http://www.reibang.com/p/da1ca645b95c

3.工具類(lèi)RxTools推薦:普通app幾乎大部分工具類(lèi)仗阅,有這個(gè)夠用了昌讲。GitHub上7千+收藏量了。

https://github.com/vondear/RxTool

4.安卓博客門(mén)戶(hù):除了apkbus减噪,掘金短绸,簡(jiǎn)書(shū),codekk也不錯(cuò)http://p.codekk.com/筹裕,鴻洋的玩安卓http://www.wanandroid.com/

5.程序員的導(dǎo)航之家極客導(dǎo)航醋闭,分類(lèi)了你幾乎想要了解的網(wǎng)址門(mén)戶(hù)

http://www.jikedaohang.com/

5.阿里矢量icon圖庫(kù):有了這個(gè)你是不是可以和ui妹子多交流交流呢哈哈

http://www.iconfont.cn/


得到全平臺(tái)付費(fèi)內(nèi)容打包帶走(共4T 含音頻+圖片及直播內(nèi)容視頻等)

[我的小店進(jìn)店鏈接]:dedaofree.taobao.com
淘口令:【混沌大大學(xué)堂王東岳創(chuàng)新院研習(xí)社商學(xué)院創(chuàng)業(yè)營(yíng)創(chuàng)投營(yíng)包更新】https://m.tb.cn/h.3NTTSIi 點(diǎn)擊鏈接,再選擇瀏覽器咑閞朝卒;或復(fù)·制這段描述¥Sgk7bPooUrp¥后到淘♂寳♀

你以為送完免費(fèi)東東就完了证逻,是不是還意猶未盡?沒(méi)錯(cuò)抗斤,我必須給大伙點(diǎn)看家家當(dāng)了囚企,我本人收集了得到APP上面所有的付費(fèi)內(nèi)容丈咐,沒(méi)錯(cuò),不要問(wèn)全不全洞拨,什么付費(fèi)訂閱課扯罐,大師課統(tǒng)統(tǒng)都有负拟。我現(xiàn)在自己就每天都在聽(tīng)烦衣,很方便,路上在家有空的時(shí)候插上耳機(jī)收聽(tīng)就行了掩浙。感覺(jué)自己每天都有無(wú)形的收獲花吟!

做程序員這么多年,一輩子敲代碼是不可能的厨姚,永遠(yuǎn)都不可能的衅澈。這會(huì)是程序員通往產(chǎn)品經(jīng)理,程序員通往管理高層的成功必經(jīng)之路谬墙!

image.png

比如說(shuō)梁寧產(chǎn)品思維三十講今布,寧向東的清華管理學(xué)等等,得到平臺(tái)如果您不了解拭抬,你可以現(xiàn)在立刻馬上電子市場(chǎng)下載部默,它上面的付費(fèi)內(nèi)容含金量個(gè)人覺(jué)得數(shù)一數(shù)二了!

上面的大師級(jí)別的課都上99 造虎,199起步的傅蹂,現(xiàn)在我這里拿去,僅99元全部打包帶走算凿,加微信購(gòu)買(mǎi)發(fā)百度云鏈接永久保存到您自己網(wǎng)盤(pán)份蝴!現(xiàn)在憑這篇文章截圖可以送喜馬拉雅全平臺(tái)2017,2018付費(fèi)音頻!

![
image.png
image.png

太多了不截圖了4.5T左右

一輩子敲代碼是不可能的氓轰,我覺(jué)得我們程序員要獲取的知識(shí)面應(yīng)該更寬更廣婚夫,得到平臺(tái)上的內(nèi)容很多就很符合,轉(zhuǎn)型其他崗位署鸡,行業(yè)案糙,但是機(jī)會(huì)總是留給做好準(zhǔn)備的人!所以抓緊學(xué)習(xí)吧储玫,趁還年輕侍筛!2018年定價(jià)99元,2019年錯(cuò)過(guò)這個(gè)村就就沒(méi)這個(gè)價(jià)啦撒穷。

如果您擔(dān)心音質(zhì)問(wèn)題匣椰,那是完全多余了,您可以5元視聽(tīng)一個(gè)欄目端礼,不是百分百原音質(zhì)退全額禽笑。

另外有騰訊課堂著名的動(dòng)腦學(xué)院Android VIP全套課程視頻源碼(大概2T入录,高清原畫(huà)質(zhì)),價(jià)值6888元佳镜,不了解的可騰訊課堂搜Android課程排名第一的長(zhǎng)沙--動(dòng)腦學(xué)院僚稿,你官方報(bào)名同樣很多時(shí)候是看視頻的,講師講課很仔細(xì)蟀伸,有源碼demo蚀同,我這里白菜價(jià)拿走不謝,看完這套視頻啊掏,工資上漲3-8k不在話(huà)下蠢络!高級(jí)安卓進(jìn)階必會(huì)技術(shù)需要的微信聯(lián)系這里不私聊。

image.png

image.png

image.png

我的微信號(hào)(購(gòu)買(mǎi)加微信必須注明簡(jiǎn)書(shū)得到):together13ly14

image.png

加我注明:簡(jiǎn)書(shū)


最后:如果你對(duì)我發(fā)知識(shí)沒(méi)有欲望迟蜜,喜歡吃喝玩樂(lè)旅行刹孔?我可以給你推薦個(gè)旅行公眾號(hào),微信搜:廣州小青蛙旅行網(wǎng)娜睛,那里都是一些上班白領(lǐng)周末純玩路線(xiàn)髓霞,主打年輕人社交旅行,多數(shù)都是廣州集合出發(fā)的畦戒,也有匯集到目的地集合出發(fā)的方库。一百多塊錢(qián)就可以玩好,報(bào)名后屏這里截圖同樣可以減免20元優(yōu)惠不等兢交。直接微信或電話(huà)咨詢(xún)報(bào)名即可薪捍!還可以找到未來(lái)的女朋友,想想都開(kāi)心配喳,哈哈

image.png

image.png

歡迎收藏雙擊吐槽贊賞

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末酪穿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子晴裹,更是在濱河造成了極大的恐慌被济,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涧团,死亡現(xiàn)場(chǎng)離奇詭異只磷,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)泌绣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)钮追,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人阿迈,你說(shuō)我怎么就攤上這事元媚。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵刊棕,是天一觀(guān)的道長(zhǎng)炭晒。 經(jīng)常有香客問(wèn)我,道長(zhǎng)甥角,這世上最難降的妖魔是什么网严? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮嗤无,結(jié)果婚禮上震束,老公的妹妹穿的比我還像新娘。我一直安慰自己翁巍,他們只是感情好驴一,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布休雌。 她就那樣靜靜地躺著灶壶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪杈曲。 梳的紋絲不亂的頭發(fā)上驰凛,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音担扑,去河邊找鬼恰响。 笑死,一個(gè)胖子當(dāng)著我的面吹牛涌献,可吹牛的內(nèi)容都是我干的胚宦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼燕垃,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼枢劝!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起卜壕,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤您旁,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后轴捎,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體鹤盒,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年侦副,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了侦锯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秦驯,死狀恐怖尺碰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤葱蝗,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布穴张,位于F島的核電站,受9級(jí)特大地震影響两曼,放射性物質(zhì)發(fā)生泄漏皂甘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一悼凑、第九天 我趴在偏房一處隱蔽的房頂上張望偿枕。 院中可真熱鬧,春花似錦户辫、人聲如沸渐夸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)墓塌。三九已至,卻和暖如春奥额,著一層夾襖步出監(jiān)牢的瞬間苫幢,已是汗流浹背懈玻。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工耕蝉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人祸轮。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓九榔,卻偏偏與公主長(zhǎng)得像哀峻,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子哲泊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容