精华内容
下载资源
问答
  • 基于树莓派的人脸识别门禁系统

    万次阅读 多人点赞 2019-05-05 09:38:44
    这是近期以来完成的第二个项目,第一个项目是基于STM32的智能窗帘控制系统(语音控制、温湿度控制、蓝牙APP控制、光敏控制)第一个项目也会在后续进行一个赘述。 1. 前期准备: 某宝准备一块相对性能好的树莓派,我...

    这是近期以来完成的第二个项目,第一个项目是基于STM32的智能窗帘控制系统(语音控制、温湿度控制、蓝牙APP控制、光敏控制)第一个项目也会在后续进行一个赘述。

    1. 前期准备:

    某宝准备一块相对性能好的树莓派,我自己用的是树莓派3B+。

    购置一个配套电源

    购置一个SD卡,因为你需要安装系统、配置环境。这里特别强调配置环境是一个让人特别头大的事情。如果你想无压力的话你可以购买64G,如果性价比的话你可以购置32G内存卡,因为树莓派是真的好玩,你完成这个项目后还可以继续玩其他的。

     

    2. 安装系统

    系统我安装的是Linux系统,这里我就不赘述了,因为网上教程一大堆。也简单

     

    3. 安装环境

    这里的话如果不是调用百度API接口实现人脸识别的话,这部分可以省略。如果是用OpenCV自己去做的话我建议你还是看看。因为就仅仅这一步安装环境我头痛了一个礼拜才安装完毕。具体安装细节请看这篇博客

    https://blog.csdn.net/qq_36588941/article/details/89839527

     

    4. 注册百度云

    由于树莓派的性能限制,我也考虑过尝试过做树莓派的视频流检测人脸,但是最终结果太不理想。最终考虑还是用树莓派摄像头拍摄一张照片然后进行人脸识别。用拍照进行识别也可以用OpenCV去做,但是我最终还是考虑用开源的人脸识别SDK来进行人脸的识别和检测,对比了国内几家的SDK(阿里云、腾讯云、Face++等等),同样注册了阿里云的应用,直接收费,Face++给了限定的测试次数,所以选择了百度AI,个人觉得百度人脸识别的效果要好一点,特别是并发数要比其他的好很多。下面介绍下百度云注册和SDK的使用方法:

    1、注册百度云(http://ai.baidu.com/

     

    创建应用

     

    获取密钥,AppID、API Key和Secret key,这三个后面的程序需要用到。

     

     

    查看相应语言的开发文档,我用的是Python语言。

     

     

    5. 上传人脸库

     

    6. 人脸识别程序

    百度云注册完成、下载完成SDK后我们就开始写程序,程序的思路很简单,通过树莓派按键中断拍摄一张照片,然后通过SDK来检测照片里面的人是谁,如果这个人在人脸库里面,打开继电器进行开门,如果不在人脸库就关门。同时我还添加了语音播报的功能,而且还能将开门信息推送到微信上,这样就可以试试的看到有谁来开门了。

    '''
    通过摄像头拍一张照片,然后识别出人是谁,进而控制门禁系统
    @author: 蓝色鲜橙多
    @date:2019年4月22日
    '''
    
    from aip import AipFace
    from picamera import PiCamera
    import urllib.request
    import RPi.GPIO as GPIO
    import base64
    import time
    import pyttsx3
    import pygame
    import cv2
    
    #百度人脸识别API账号信息
    APP_ID = '14940942'
    API_KEY = 'oj0h7ccivwL4GDbm2S5PjDV8'
    SECRET_KEY = 'flj13WxsEO4RplskdMqM3gFNTMNQeed4 '
    client = AipFace(APP_ID, API_KEY, SECRET_KEY)
    #图像编码方式
    IMAGE_TYPE='BASE64'
    #用户组信息
    GROUP = 'hua'
    camera = PiCamera()
    pygame.mixer.init()
    
    GPIO.setwarnings(False)
    
    GPIO_IN_PIN22  = 22    # 按键控制
    GPIO_OUT_PIN17 = 17    # 识别不通过 亮红灯
    GPIO_OUT_PIN4  = 4     # 识别通过   打开继电器
    GPIO_OUT_PIN24 = 24    # 识别通过   亮绿灯
    GPIO_OUT_PIN18 = 18    # 工作指示灯灯
    
    ledStatus = True
    
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(GPIO_IN_PIN22,GPIO.IN,pull_up_down=GPIO.PUD_UP)
    GPIO.setup(GPIO_OUT_PIN17,GPIO.OUT)
    GPIO.setup(GPIO_OUT_PIN4,GPIO.OUT)
    GPIO.setup(GPIO_OUT_PIN18,GPIO.OUT)
    GPIO.setup(GPIO_OUT_PIN24,GPIO.OUT)
    
    #定义一个摄像头对象
    def getimage():
        camera.resolution = (1024,768)
        camera.start_preview()
        time.sleep(2)
        camera.capture('faceimage.jpg')
        '''pygame.mixer.music.load('./voice/start.mp3')
        pygame.mixer.music.play()
        time.sleep(2)'''
    
    #对图片的格式进行转换
    def transimage():
        f = open('faceimage.jpg','rb')
        img = base64.b64encode(f.read())
        return img
    
    #播放声音
    def playvioce(name):
        pygame.mixer.music.load('./voice/' +name)
        pygame.mixer.music.play()
        
    
    #发送信息到微信上  
    def sendmsg(name,main):
        url = "https://sc.ftqq.com/SCU36412T61050df84b51badbd34dd7abb92d19af5bfb6b6fef05b.send?"
        urllib.request.urlopen(url + "text="+name+"&desp="+main)
    #上传到百度api进行人脸检测
    def go_api(image):
        result = client.search(str(image, 'utf-8'), IMAGE_TYPE, GROUP)
        if result['error_msg'] == 'SUCCESS':
            name = result['result']['user_list'][0]['user_id']
            score = result['result']['user_list'][0]['score']
            if score > 95:
                print("Welcome %s !" % name)
                if name == 'hua_1':
                    sendmsg("hua_1",name)
                    playvioce('zouminghua.mp3')
                    #time.sleep(4)
                '''if name == 'hua':
                    sendmsg("hua",name)'''
                if name == 'an_cheng':
                    sendmsg("an_cheng",name)
                    playvioce('xianancheng.mp3')
                    #time.sleep(4)
            else:
                print("Sorry...I don't know you !")
                name = 'Unknow'
                sendmsg("BadGay",name)
                playvioce('cuowushibie.mp3')
                #time.sleep(4)
                return 0
            curren_time = time.asctime(time.localtime(time.time()))
            f = open('Log.txt','a')
            f.write("Person: " + name + "     " + "Time:" + str(curren_time)+'\n')
            f.close()
            return 1
        if result['error_msg'] == 'pic not has face':
            print('There is no face in image!')
            playvioce('noface.mp3')
            #time.sleep(4)
            return 0
        else:
            print(result['error_code']+' ' + result['error_code'])
            return 0
        
    # 识别处理函数
    def manage():
        getimage()
        img = transimage()
        res = go_api(img)
        if(res == 1):
            GPIO.output(GPIO_OUT_PIN24,GPIO.HIGH)
            time.sleep(1)
            GPIO.output(GPIO_OUT_PIN24,GPIO.LOW)
            
            GPIO.output(GPIO_OUT_PIN4,GPIO.HIGH)
            time.sleep(2)
            GPIO.output(GPIO_OUT_PIN4,GPIO.LOW)
                            
        else:
            GPIO.output(GPIO_OUT_PIN17,GPIO.HIGH)
            time.sleep(1)
            GPIO.output(GPIO_OUT_PIN17,GPIO.LOW)
            print('waite 3 seconds to do next')
           
    # 按键中断函数
    def my_callback(channel):
        global ledStatus
        ledStatus = not ledStatus
        if ledStatus:
            #while True:
            manage()
                #if ledStatus == 0:
                    #break          
        else:
            pass
        pass
    
    
    # 给22引脚添加一个事件函数,触发条件是:捕获到GPIO.FALLING(下降沿)
    GPIO.add_event_detect(GPIO_IN_PIN22,GPIO.FALLING, callback = my_callback,
                          bouncetime = 150)
    
    if __name__ == '__main__':
        while True:
            try:
                GPIO.output(GPIO_OUT_PIN18,GPIO.HIGH)
                print("I'm working...")
                time.sleep(5)
                pass
            except: 
                GPIO.output(GPIO_OUT_PIN18,GPIO.LOW)
                GPIO.output(GPIO_OUT_PIN4,GPIO.LOW)
                break
                pass
            pass
        '''KeyboardInterrupt'''
    
                
                    
                    
                    
                    
                    

    7. 下面是实物照片

    这是测试时候的照片

    这是封装后的照片

    这里拍照用的picamera,是专门为树莓派定制的摄像头,淘宝可以买到。播放音乐我用的pygame的播放音乐模块,MP3文件是我自己录的音,推送微信用的是一个很好的工具server酱(http://sc.ftqq.com/3.version

    树莓派无线连接:https://blog.csdn.net/qq_36588941/article/details/89792201

    查看连接手机热点的树莓派IP地址:https://blog.csdn.net/qq_36588941/article/details/89611625

    树莓派调节音量:https://blog.csdn.net/qq_36588941/article/details/89608587

    树莓派3B+开机自启动Python程序:https://blog.csdn.net/qq_36588941/article/details/89604748

    参考:https://www.cnblogs.com/zutterhao/p/9075513.html

     

    展开全文
  • 了一个B站Up主推荐系统

    万次阅读 2021-03-01 11:20:52
    (1)爬取B站用户关注Up主列表 使用B站的API进行获取数据 https://api.bilibili.com/x/relation/followings?vmid (2)采用简单的ItemCF模型 参考之前的文章[零基础入门推荐系统(1)]基于用户和基于物品的协同过滤...

    1. 技术路线

    (1)爬取B站用户关注Up主列表

    使用B站的API进行获取数据

    https://api.bilibili.com/x/relation/followings?vmid
    

    (2)采用简单的ItemCF模型

    参考之前的文章[零基础入门推荐系统(1)]基于用户和基于物品的协同过滤方法(python代码实现)

    class ItemCF(object):
        """
        物品协同过滤,根据用户浏览过的物品推荐相似物品
        """
        def train(self, user_items, alpha=0.5, normalization=False):
            """
            训练模型
            :return:
            """
            self.user_items = user_items
            # 计算物品的协同矩阵
            #self.item_sim_matrix = self.item_similarity(user_items, normalization=True)
            #self.item_sim_matrix = self.improved_item_similarity(user_items)
            self.item_sim_matrix = self.improved_item_similarity2(user_items, alpha=alpha, normalization=normalization)
    
            #print(self.item_sim_matrix)
    
            return self.item_sim_matrix
    
        def improved_item_similarity(self, user_items, normalization=False):
            """
            :param user_items: {user1:[movie1,movie2], user2:[movie1]}
            :return: W: {items1: {item2: sim12, item3:sim13}}
            """
            # calculate co-rated users between items.
            C = dict()
            N = dict()
            for user, items in user_items.items():
                for i in items:
                    N[i] = N.get(i,0) + 1
                    if i not in C:
                        C[i] = dict()
                    for j in items:
                        if i == j:
                            continue
                        C[i][j] = C[i].get(j,0) + 1/math.log(1+len(items))
    
            # calculate final similarity matrix W
            W = dict()
            for i, related_items in C.items():
                if i not in W:
                    W[i] = dict()
                for j, cij in related_items.items():
                    W[i][j] = cij / math.sqrt(N[i] * N[j])
    
            if normalization:
                for i, item_list in W.items():
                    item_list = [item/max(item_list) for item in item_list]
                    W[i] = item_list
            return W
    
        def improved_item_similarity2(self, user_items, alpha=0.5, normalization=False):
            """
            Solution for Harry Potter problem.
            :param user_items: {user1:[movie1,movie2], user2:[movie1]}
            :return: W: {items1: {item2: sim12, item3:sim13}}
            """
            # calculate co-rated users between items.
            C = dict()
            N = dict()
            for user, items in user_items.items():
                for i in items:
                    N[i] = N.get(i,0) + 1
                    if i not in C:
                        C[i] = dict()
                    for j in items:
                        if i == j:
                            continue
                        C[i][j] = C[i].get(j,0) + 1/math.log(1+len(items))
    
            # calculate final similarity matrix W
            W = dict()
            for i, related_items in C.items():
                if i not in W:
                    W[i] = dict()
                for j, cij in related_items.items():
                    # if N[i] < N[j]:
                    W[i][j] = cij / (N[i]**(1-alpha) * N[j]**alpha)
                    # else:
                    #     W[i][j] = cij / (N[j] ** (1 - alpha) * N[i] ** alpha)
    
            if normalization:
                for i, item_list in W.items():
                    item_list = [item/max(item_list) for item in item_list]
                    W[i] = item_list
            return W
    
        def item_similarity(self, user_items, normalization=False):
            """
            :param user_items: {user1:[movie1,movie2], user2:[movie1]}
            :return: W: {items1: {item2: sim12, item3:sim13}}
            """
            # calculate co-rated users between items.
            C = dict()
            N = dict()
            for user, items in user_items.items():
                for i in items:
                    N[i] = N.get(i,0) + 1
                    if i not in C:
                        C[i] = dict()
                    for j in items:
                        if i == j:
                            continue
                        C[i][j] = C[i].get(j,0) + 1
    
            # calculate final similarity matrix W
            W = dict()
            for i, related_items in C.items():
                if i not in W:
                    W[i] = dict()
                for j, cij in related_items.items():
                    W[i][j] = cij / math.sqrt(N[i] * N[j])
    
            if normalization:
                for i, item_sim_dict in W.items():
                    max_val = max(item_sim_dict.values())
                    #print(max_val)
                    for j,sim in item_sim_dict.items():
                        item_sim_dict[j] = sim/max_val
    
    
            return W
    
        def recommend(self, user, N, K):
            """
            recommend item according to the history items of users.
            :param user:
            :param N: the number of recommend items
            :param K: the number of most similar users
            :return:  recommend items dict, {item: similarity}
            """
            already_items = set(self.user_items.get(user, set()))
            recommend_items = dict()
    
            for i in already_items:
                for j, sim in sorted(self.item_sim_matrix.get(i,dict()).items(), key=lambda x:-x[1])[:K]:
                    if j in already_items:
                        continue
                    recommend_items[j] = recommend_items.get(j,0) + sim
            recommend_item_list = sorted(recommend_items.items(), key=lambda x:-x[1])[:N]
            return recommend_item_list
    
        def recommend_users(self, users, N, K):
            """
    
            :param users:
            :param N:
            :param K:
            :return: dict, {user:[movie1, movie2]}
            """
            recommend_result = dict()
            for user in users:
                recommend_item_list = self.recommend(user, N, K)
                recommend_result[user] = recommend_item_list
            return recommend_result
    ————————————————
    版权声明:本文为CSDN博主「rosefunR」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/rosefun96/article/details/109107812
    

    2. 效果展现

    (1)根据喜欢的Up主查询可能喜欢的其他Up主

    比如喜欢象棋,输入
    在这里插入图片描述

    推荐结果:

    在这里插入图片描述

    (2)输入个人的B站 UID(B站身份ID)

    比如,输入 碧诗的UID 2,推荐结果:

    在这里插入图片描述

    3. 体验网站

    www.pazhufeng.com Up主个性推荐网站

    展开全文
  • 推荐10个堪称神器的学习网站

    万次阅读 多人点赞 2020-01-07 10:27:26
    今天一早了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得...

    每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。”

    今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈)

    既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推荐给大家。如果觉得不错的话,文末请点赞。

    01、大学资源网

    大学资源网是一个完全免费并且功能非常强大的学习网站,它免费提供了丰富并且全面的学习视频教程,并且视频课程一直在更新,非常良心。

    我比较看重的是它里面的考研视频教程,有数学、英语、政治、专业课等等;还有英语视频课程,对于一名程序员来说,如果想要变得更优秀,英语是不可或缺的。

    另外,我看到它还贴心的支持:小学课程、初中课程、高中课程。挑了几个看了一下,竟然找到了年轻时上课的感觉。

    02、北京大学公开课

    北京大学公开课是北京大学出品的一个完全免费的公开课视频学习站,它面向大学生,也向社会大众免费开放。

    我比较喜欢的是里面的《数据结构与算法》,对于我们程序员来说,既然进入了专业的编程领域,算法、数据结构、网络模型、计算机原理等这些计算机科学专业的理论知识是必须要学习的。

    虽然算法很难,需要智商,但我还是要鼓励大家学一下,一旦掌握了其中的套路,你会受益无穷的。

    03、大学自学网

    大学自学网是一个完全免费的大学生自学网站,它不仅支持免费在线观看所有学习视频,还支持免费下载所有学习视频,是一个可以满足很多人自学需求的良心网站。

    向下拉,你会看到一个计算机板块,里面有“网络安全基础”、“嵌入式Linux操作系统”、“Python”等热门方向的视频。这些也是工作以后的刚需。

    我看里面还有一个“电脑安装与维修实用技术”,妈妈再也不用担心我不会给女朋友修电脑了,哈哈哈。

    04、偶书

    偶书是一个完全免费的精品电子书网站,它不仅支持电子书搜索下载,还支持非常全面的电子书分类功能和非常贴心的电子书推荐功能。

    下载了一本《Java编程思想》,质量还是挺不错的。另外,推荐大家空闲的时间可以读一读《代码大全》、《编程珠玑》、《重构》等等,偶书上都可以搜索到。

    05、哔哩哔哩

    bilibili 是国内知名的视频弹幕网站,通过动漫打出了名声,最近两年发展势头迅猛,里面有不少有创意的 Up 主,不乏一些有趣的程序员。

    看到我的好朋友【程序员良许】也在上面,我就知道 B 站上的视频质量越来越高了。顺带再推荐一些 up 主给大家,比如说小甲鱼(涉及到 C 语言、Python、Web 前端等)、技术胖(主攻 Web 前端,涉及到 React、Vue、Flutter 等等)。

    06、简单教程

    简单教程是一个完全免费的高质量编程开发学习网站。它提供了丰富的基础学习教程,包括:微信小游戏开发、移动开发、前端开发、后端开发、java 技术、.NET 、数据库和缓存、运维开发、XML 。

    如果是 Java 程序员的话,我建议大家先学一学《设计模式》。设计模式就好像是武功的招式,有了这些招式,加上一些内功,就能战无不胜了。

    07、Stack Overflow

    Stack Overflow 是一个世界级的问答网站,该网站允许注册用户提出或回答问题,还可以对已有问题或答案加分、扣分或进行修改,条件是用户达到一定的“声望值”。“声望值”就是用户进行网站互动时能获取的分数,例如,用户 A 回答了一个问题,用户 B 对用户 A 的解答给予了“加分”,用户 A 就会因而获得 10 点声望值。 当声望值达到某个程度,用户的权限就会增加,如声望值超过50点就可以评论答案,另外网站也会根据用户的贡献颁发徽章 。

    我最近坚持每周看一个问题,目前已经总结了很多个高浏览量的问题,感觉很多以前不解的问题都突然豁然开朗了,大家感兴趣的话,可以看一下我之前学习过的记录:打印Java数组最优雅的方式是什么?

    08、YouTube

    这个里面我比较喜欢的是 JavaPoint 的视频,观看量也比较大,内容讲解的也很实用和入门级,很适合初学者学习。每集差不多 10 分钟,强烈推荐。

    09、牛客网

    牛客网”是一个专注于程序员的学习和成长的专业平台,集笔面试系统、课程教育、社群交流、招聘内推于一体。

    说道面试题,肯定是面试之前要刷一刷,不少读者问我,想跳槽,但是又感觉不自信,那么我的回答只有一个,就是刷面试题啊。

    10、CSDN

    CSDN 是 1999 年成立的,算是国内最老,最成熟的技术博客网站了。虽然近年来被吐槽很多,比如说资料下载的问题,比如文章抄袭的问题,但是这并不妨碍 CSDN 能够帮助我们解决很多问题的现实。如果你搜解决方案的时候,无论是某度,还是谷歌,排名靠前的几乎都出自 CSDN。

    看到我的好朋友江南一点雨我就放心了,说明 CSDN 的推荐机制还没有出毛病。他的文章质量还是非常高的,在 Spring Boot 方面有着很专业的见解。

    好了,就推荐个大家这 10 个堪称神器的学习网站吧,用心地学上一年半载,你会回来感谢我的。人最重要的就是放下自己的偏见,以及开阔自己的眼界。干,就对了。

    最后,还有很多读者问我是怎么学习的,那我干脆就把我看过的一些优质书籍贡献出来:

    计算机基础入门推荐:《程序是怎样跑起来的》、《网络是怎样连接的》、《计算机是怎样跑起来的的》

    进一步认识计算机网络:《计算机网络:自顶向下》、《图解http》

    数据结构+算法入门:《大话数据结构》、《阿哈算法》

    算法进阶:《算法第四版》、《编程珠玑》

    由于我是 Java 技术栈的,顺便推荐几本 Java 的书籍,从左到由的顺序看到

    Java:《Java核心技术卷1》、《编程思想》、《深入理解Java虚拟机》、《effective Java》、《Java并发编程的艺术》

    数据库:《mysql必知必会》、《MySQL技术内幕:InnoDB存储引擎》

    就先介绍这么多,这些都是最基础最核心的,希望对那些不知道看什书的同学有所帮助。

    对了,我介绍的这些书籍,已经顺便帮你整理好了,你可以在我的原创微信公众号『沉默王二』回复『书籍』获取哦

    有收获?希望老铁们来个三连击,给更多的同学看到这篇文章

    1、老铁们,关注我的原创微信公众号「沉默王二」,专注于有趣有益的程序人生,保证你看完有所收获,不信你打我。

    2、给二哥点个赞呗,可以让更多的人看到这篇文章,顺便激励下我,嘻嘻。

    作者info
    作者:沉默王二,CSDN 2019年度博客之星,《Web全栈开发进阶之路》作者
    原创公众号:『沉默王二』,已写了 250 多篇文章,专注于有趣的 Java 技术和有益的程序人生,期待你的关注。

    展开全文
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    系统关机前使用 shutdown命令,系统管理员会通知所有登录的用户系统将要关闭,并且login指令会被冻结,即新的用户不能再登录。 halt 1.作用 halt命令的作用是关闭系统,它的使用权限是超级用户。 2.格式 halt...
  • 毕业设计别再 XX 管理系统了!!!

    千次阅读 多人点赞 2021-01-16 11:30:00
    李宏毅GAN教程地址: https://www.bilibili.com/video/BV1Up411R7Lk Pytorch官方生成对抗网络范例代码: 这是 Pytorch 官方教程的一个章节,面向小白讲解了GAN,并直接上代码,解释到位,清晰易懂,注释良好。...

    今天推荐几个项目,毕业设计可借鉴下面这几个 GitHub 项目,我不是简单的推荐项目,还会给出一些思路,基于这些 GitHub 项目魔改成自己的项目,至少还能增加一个项目经验不是?

    除了一些 GitHub 项目,老逛还会推荐一些渠道,从这些渠道你同样可以获取到一些实战项目和源码。

    提示:本文章推荐的项目仅适用于本科毕业设计借鉴。

    GitHub项目推荐

    推荐的这几个 GitHub 项目并不是简单的 XX 管理系统,我会从下面这些方向推荐几个入门级别但是不那么 Low 的项目。

    • JavaWeb项目

    • 移动端项目

    • 机器学习项目

    • 深度学习项目

    • 推荐系统

    • 大数据项目

    01

    JavaWeb项目

    学之思在线考试系统

    这个项目是是一款 Spring 技术栈 + Vue.js 的前后端分离的考试系统,分为学生端、用户端、小程序端,能覆盖到 PC 和移动端。。界面美观、设计友好、代码结构清晰,即使是应届生找工作,这个项目也是不错的练手手项目。

    并且支持多种部署方式:集成部署、前后端分离部署、docker部署。

    地址:https://github.com/mindskip/xzs

    学生端

    管理端

    小程序端

    在线考试

    这个项目后端采用 Spring Boot + JPA + Swagger2 + JWT 技术栈,前端使用 Vue + AntDesign 技术。都是在线考试系统,但这个系统的 UI 界面比上一个项目好看一点。

    地址:github.com/19920625lsg/spring-boot-online-exam

    登陆

    首页

    答题

    考试管理

    考试列表

    外卖系统

    一个完整的外卖系统,包括手机端,后台管理。基于 Spring Boot 和 Vue 的前后端分离的外卖系统,包含完整的手机端,后台管理功能。

    地址:gitee.com/microapp/flash-waimai

    电影院选座系统

    开发技术 : Spring MVC + Spring + MyBatis 框架,MySQL数据库。支付宝沙箱支付 LayUI 百度 Echarts 图表 Redis 缓存中间件。特色:支付、可视化、智能选座等。

    地址:https://gitee.com/bysj2021/cinema

    02

    移动端项目

    移动端项目的话可以模仿现在主流的一些 App,比如外卖、短视频、直播等。比如我下面会推荐的仿美团项目,这个项目你可以改一改,怎么改呢?

    我给大家一个思路:用户下单点外卖,商家会里面收到消息「您有新订单」商家选择接单或者不接单,如果商家接单,用户会支付然后进行后面的业务。

    你可以搞一个在线打印预约系统,针对校园的。用户打开你的系统,会看到你学校所有的打印店铺,你选择一个你感兴趣的店铺,去上传你的打印文件,这时候打印店主端会接收一个消息「您有新订单」,商家选择接单或者不接单。

    你进行支付后,商家那边就会自动打印这份文件,打印完毕,店家把文件放在打印店的货架上,这时候店主点击「通知取货」你的系统就会给用户发送一个短信:“您的文件《假装是一个文件名字》打印完毕,请到清华大学西门打印店(西门左走 100 米)取货,取货号为「666」。

    刚刚提到这个想法,完全可以通过美团这个项目改一改,支付功能、定位功能、短信功能都不难,支付功能可以采用支付宝沙箱,完全可以满足答辩演示的需求,短信发送功能各大云平台都提供相关服务,比如我推荐一篇文章: 7 分钟实现 Java 发送短信功能

    仿美团外卖点餐

    前端用 vue+vuex+vue-router+axios,后端基于nodej.s的框架,数据库采用mongodb。功能涉及登录,定位,浏览商品,加购物车,下订单,支付(微信、支付宝扫码支付),评价,个人信息更改。

    项目地址:https://github.com/zwStar/vue-meituan

    精仿今日头条

    数据是抓取今日头条App的数据。使用 RxJava + Retrofit + MVP 开发的开源项目。

    项目地址:https://github.com/chaychan/TouTiao

    下面这两个 GitHub 项目,都是移动端开发者开发的复制版抖音 App,老逛以前也推荐过。

    iOS 仿抖音

    这个抖音 Demo 适配 iPhone、iPad,同时兼容 iOS 8.0 - iOS 12.0系统。采用 Object-C 语言编写。标星 1.5K Star,项目地址:

    https://github.com/sshiqiao/douyin-ios-objectc

    本项目共分为三个部分:抖音个人主页实现、网络视频相关功能实现、WebSocket 实现 IM 即时聊天功能。


    Android 仿抖音

    这个 Demo 涉及的技术要点如下:

    • Recycler + PagerSnapHelper 实现全屏切换播放效果,

    • 使用 Lottie 库加载 Json 动画

    • BottomSheetDialogFragment 实现分享评论弹框功能

    • CoordinatorLayout + AppBarLayout 实现折叠布局。

    该项目标星 1K Star,项目地址:

    https://github.com/18380438200/Tiktok

    秀视频

    这个项目是一个短视频社交小程序,系统包括用户端和后台管理端。用户可以在小程序上发布自己的短视频,并且经过我们的平台加入滤镜或者背景音乐制作出独具特色的短视频。具备点赞、评论、下载、分享、转发等功能。技术栈如下:

    前端: H5、CSS、JavaScript 、JQuery、Bootstrap、Themeleaf

    后端:Spring Cloud、Spring Boot、Sping、Spring MVC、MyBatis、MySQL、Redis、Shiro

    组件:Bootsrap-table、webUploader、PageHelper

    项目地址:https://github.com/RAOE/show-videos

    斗鱼直播 APP

    flutter 重构的斗鱼直播 APP,首页、娱乐为Material组件;直播间、鱼吧为纯自定义编写。

    地址:https://github.com/yukilzw/dy_flutter

    仿网易云音乐

    基于 flutter 的仿网易云音乐软件,支持  iOS 和 Android。

    地址:https://github.com/boyan01/flutter-netease-music

    高仿 B站

    基于 react +  express 高仿B站 Web 移动端

    链接:https://github.com/code-mcx/react-bilibili

    03

    机器学习、深度学习

    机器学习项目和深度学习项目放在一起,对于本科生来说,大部分没有深度学习、机器学习的基础,如果你没有相关基础还要做这相关的项目,我推荐几个教程,这些教程都是老逛认真学过,负责的告诉大家,把这些视频看懂应付答辩肯定没问题。

    吴恩达机器学习:www.bilibili.com/video/BV164411b7dx

    机器学习教程:https://coding.imooc.com/class/169.html

    吴恩达深度学习:www.bilibili.com/video/BV164411m79z

    Pytorch实战:https://www.bilibili.com/video/BV1cV411Y7jZ

    Tensorflow实战:https://www.bilibili.com/video/BV1Zt411T7zE

    情感分析

    基于机器学习的商品评论情感分析,使用 Selenium 模拟真实登录行为,爬取数据。使用 jieba 分词,分类模型采用机器学习算法SVM 和深度学习算法 LSTM。

    地址:https://github.com/20100507/emotional_analysis

    舆情分析

    利用微博热点话题舆情聚类分析,主要功能包括爬取微博数据,微博数据文本处理,特征向量提取,Kmeans 聚类。

    地址:https://github.com/pengLP/sina_analysis

    这个项目只是使用了简单的聚类算法 Kmeans,如果大家那这个项目作为自己的毕业设计,我觉得可以调研深度学习相关的算法,看几篇 Paper,有能力复现一下再进行改进,只要有了数据你就能搞很多事情,按照我的思路应付本科毕业设计足够了,硕士就算了,估计开题都过不了。

    如果这个项目爬取的数据没办法满足你的需求,你可以去这个库看看,一个非常好用的微博爬虫。

    https://github.com/dataabc/weiboSpider

    图片分类

    这个 GitHub 项目就很多了,你可以直接 GitHub 搜索关键字「Pytorch 图片分类」或者「TensorFlow 图片分类」,比如有猫狗分类等等。如果你做图片分类,技术路线大体是一样的,都是基于卷积神经网络来做。

    但是你需要改一改,怎么改呢 ? 我举个栗子:你可以做疾病分类,网上有很多的开源数据集,判断一张图片是猫还是狗和判断一张图片有没有病本质上是一样的。

    如果你想搞一些花里胡哨的东西,可以借助注意力机制把病灶找出来,最终的效果就是:输入一张医疗图片,会输出这张图片患病概率,而且把这张图片上的病灶高亮出来。

    开源数据集:CQ500

    对于一个本科毕业设计来说,我觉得做到这种程度足够了,如果你看不懂我刚刚说的技术名词,把我刚刚推荐的吴恩达深度学习教程看完,你就能明白了。

    老逛做过这方面的研究,如果大家感兴趣可以点个在看,如果在看数比较高的话,我可以自己开源一个项目,手把手教大家(甚至录个视频),绝对顶。

    生成对抗网络

    之前老逛写过一个文章介绍了去马赛克的一些技术,目前比较火的就是通过生成对抗网络(GAN)来做,GAN是一项非常有意思的技术,包括换脸,一键换(tuo)衣等等。

    如果你用了一段时间把我分享的深度学习基础撸完,推荐你看台湾大学李宏毅教授的一门课,专门讲生成对抗网络。

    如果毕设做一个生成对抗网络,也是挺叼的,大家都做分类或者推荐,你特立独行,做了个这么有意思的东西,相信老师也会给你高分。

    不用担心网络搞出来了,却水不出来论文,去知网搜一搜做生成对抗网络的硕士论文,就按他们的套路去写就 OK 了。

    李宏毅GAN教程地址:

    https://www.bilibili.com/video/BV1Up411R7Lk

    Pytorch官方生成对抗网络范例代码:

    这是 Pytorch 官方教程的一个章节,面向小白讲解了GAN,并直接上代码,解释到位,清晰易懂,注释良好。范例的模型是 DCGAN (你不用管是什么 GAN 啦,反正就是一种 GAN,你看教程就懂了)

    而且你不用担心自己的显卡不够训练,教程里直接提供了谷歌 Colab 环境代码,如果你能访问谷歌的话,就可以免费使用它提供的计算资源从头到尾跑一遍代码,加深你对 GAN 的理解。

    下图是训练好的网络生成的合成人脸,虽然不是很真实,但是作为快速入门,还是挺不错的。

    地址:https://pytorch.org/tutorials/beginner/dcgan_faces_tutorial.html

    如果你把这个搞定了,其实就可以按照自己想做的选题去做了:比如人脸属性操控、图像风格迁移等等,非常意思的项目,而且,重点是这些代码都是开源的,重要的事情说三遍:开源!开源!开源!

    人脸属性操控

    这是计算机视觉顶级会议 CVPR 2019 的文章。可以看到可以的生成的人脸进行操纵,比如眼镜、胡子、发型等。

    地址:https://github.com/csmliu/STGAN

    图像风格迁移

    这个项目代码质量也非常高,你可以基于它去魔改,或者实现你毕设中想要实现的功能。风格迁移的核心思想就是,可以从一副图像中提取出 风格 style(比如梵高的夜空风格)以及内容 content(比如你能在画中看出河边有匹马)。你可以告诉计算机,把 A 用 B 的风格再画一遍。这样的课题是不是才有意思?

    地址:https://github.com/junyanz/CycleGAN

    04

    推荐系统

    电影推荐系统

    本次项目是基于大数据过滤引擎的电影推荐系统,包含了爬虫、电影网站(前端和后端)、后台管理系统以及推荐系统(Spark)。

    通过在电影网站系统埋点,获取到用户的点击事件(如用户喜欢哪部电影或对某部电影的评分)并将信息传至推荐系统,推荐系统根据该信息做出相应的处理,将推荐结果存入到 MySQL 数据库中,Web 前端通过查询数据库将推荐的电影展示给用户。

    地址:https://github.com/LuckyZXL2016/Movie_Recommend

    新闻推荐系统

    本次项目是基于大数据计算引擎的新闻推荐系统,包含了爬虫,新闻网站(前端和后端),推荐系统(Spark)今日小站是基于 Spring Boot 框架搭建的 Web 项目,用户在网站完成注册登录后,网站会记录用户的浏览行为。同时网站也会把推荐结果呈现给用户。

    地址:https://github.com/luochana/News_recommend

    05

    大数据项目

    地铁客运分析大数据项目

    这个项目主要分析深圳通刷卡数据,通过大数据技术角度来研究深圳地铁客运能力,探索深圳地铁优化服务的方向。

    这个项目涉及很多的技术栈,项目刚刚发布没多长时间,我以前也推荐过。由于涉及较多的常用技术框架,能加深对各技术栈的理解运用。只有在使用过程中才能体验各框架的差异和优劣,从而为以后的项目开发技术选型做基础。

    下面是 GitHub 和 Gitee 的开源地址,该项目使用的数据也在项目里面,国内建议访问 Gitee 速度快一点。

    • https://github.com/geekyouth/SZT-bigdata

    • https://gitee.com/geekyouth/SZT-bigdata

    新闻网实时大数据项目

    这是一个基于 Spark2.x 新闻网大数据实时分析可视化系统项目,本次项目是基于企业大数据经典案例项目(大数据日志分析),全方位、全流程讲解大数据项目的业务分析、技术选型、架构设计、集群规划、安装部署、整合继承与开发和web可视化交互设计。

    主要业务包括,捕获用户浏览日志信息、实时分析前20名流量最高的新闻话题、实时统计当前线上已曝光的新闻话题、统计哪个时段用户浏览量最高。

    地址:https://github.com/LuckyZXL2016/News_Spark

    这是系统设计流程:

    其他渠道

    除了 GayHub 和 Gitee,其实还有一些网站可以找到可以部署的项目,只是大家不知道吧。

    1. 最代码

    这个网站的 UI 有点上世纪,但是主要的业务是源码分享。源码质量参差不齐,但也算一个找项目源码的去处了。主要是每份上传的源码,站主都会亲自部署,保证能顺利跑通才挂在上面。

    网站:http://www.zuidaima.com/

    2. 慕课网

    其实慕课网的实战项目挺多的,虽然有的需要付费,但是代码都是老师手把手带你敲,环境配置也手把手教你配,还提供项目实战需要的源码、软件等。

    地址:https://www.imooc.com/

    当年学 Java 时,第一个实战项目就是学习的 Geely 老师的,说实在的当时学到了很多东西。


    3. PHP中文网

    这个网站相对比较小众,而且也专注于 PHP 技术栈,但是提供了包括但不限于各种视频教程、中文文档、实战可部署源码等等资源,如果你认为PHP是世界上最好的语言,而且打算用PHP写毕设,那来这里就对了。

    地址:www.php.cn/xiazai/code

    4. How2J.cn

    how2j 的 Java 教程, 内容涵盖 J2EE、Web前端、框架技术等全面的 Java 内容。基于实例代码和视频讲解的学习方式也许可以为你以后java职业生涯打下坚实的基础。当然,里边也是有很多实战项目源码,并附有视频讲解,可以给你的毕设一些有用的参考。

    地址:https://how2j.cn/

    好了,今天就分享到这里。如果这篇文章可以转发收藏,防止找不到。大家也可以标星本公众号,这样就能第一时间接受到推送了。


    【推荐阅读】
    Java日志体系整理,必看权威总结
    
    52条SQL语句性能优化策略,建议收藏
    听说又有兄弟因为用YYYY-MM-dd 被锤了...
    
    又发现一款牛逼的 API 敏捷开发工具
    排名前 16 的 Java 工具类,哪个你没用过?
    
    佩服,CompletableFuture讲这么详细
    
    Java项目权威排名,结果出乎意料!
    
    是什么让我放弃了restful api?了解清楚后我全面拥抱GraphQL
    
    老板:kill -9的原理都不知道就敢到线上执行,明天不用来了
    
    昨天还在for循环里写加号拼接字符串的那个同事,今天已经不在了
    
    
    
    展开全文
  • 同样,本文从Linux系统绝大部分人都熟悉的“ifconfig eth0 up”命令来跟踪一下此命令在内核中的发生了什么事情。由于ifconfig启动(up)和禁止(down)网络设备很相似,就放到一起讲了。 首先从ifconfig的源码入手,我...
  • 漫谈android系统(4)bring up panel

    千次阅读 2016-06-19 13:28:30
    (看电路图 这个配置会影响到kernel的背光控制,一般使用WLED和DCS COMMAND ,若配置错误,系统调节背光不能使用) BLMinLevel 和 BLMaxLevel影响 backlight等级,设置1 - 255 控制背光范围较小,设置1 – 4095 ...
  • 今天像往常一样ssh连接装在本地VMware里的虚拟机系统,竟然突然连接不上。去主机里面一看,ifconfig的结果怪怪的,没有显示inet地址等信息,却打印出一句“UP BROADCAST MULTICAST”。 root@ubuntu:~# ifconfig ...
  • Python游戏开发:数字华容道

    万次阅读 多人点赞 2018-07-23 16:01:15
    1、布局设计 2、算法设计 2.1 创建并初始化数组 2.2 移动算法 2.3 是否胜利检测算法 ...今年年初,新一季的《最强大脑》开播了,第一集选拔的时候大家了一个数字游戏,名叫《数字华容道》,当...
  • Linux之我做系统性能调优时常用的一些命令

    千次阅读 多人点赞 2017-05-01 11:22:19
    开心一笑【1.年轻的时候,我们常常冲着镜子鬼脸,年老的时候,镜子算是扯平了。2.男孩穷者养,不然不晓得奋斗,女孩富着养,不然人家一块...解决问题最近工作的任务就是公司系统性能调优。其中用的比较多的命令,在
  • 迷你PC可以有多小巧?如何比一张便利贴更小? UP Core是具有可堆叠扩展功能的最小型单板计算机,我们...这些套件包括带有Windows 10 Professional的UP Core微型PC现成套件、UP Core IntelZR300机器人开发套件和UP ...
  • ProteusC51最小系统的仿真

    千次阅读 2020-02-08 13:24:02
    ProteusC51最小系统的仿真 本文是看完Proteus第二课C51最小系统的仿真-流水灯实验的学习笔记,强烈建议greenhand去看一下这个视频,特别详细。 一.画最小系统 51最小系统 由3部分组成。分别是晶振电路,复位电路,...
  • 至于要什么,你懂的。 核心 使用B站提供的API,爬取数据,进行分析。具体B站提供的API就不说了,https://www.bilibili.com/read/cv3430609/,自己看去。 获取UP主的视频列表 使用getSubmitVideos。具体的格式...
  • [NVIDIA] 入手 Jetson Xavier NX 系统烧录及bring up 本文主要讲述,基于 Jetson Xavier NX 开发者套件的系统烧录流程。 What is Jetson Xavier NX : NVIDIA® Jetson Xavier™ NX 是体型超小的AI超级计算机,...
  • 软件测试入门知识了解

    万次阅读 多人点赞 2018-09-05 14:59:58
    需求评审和设计评审是验证软件产品的需求定义和设计实现,验证所定义的产品特性是否符合客户的期望、系统的设计是否合理、是否具有可测试性以及满足非功能质量特性的要求。这个阶段主要通过对需求文档、设计文档等...
  • sqrt()函数详解

    万次阅读 多人点赞 2014-08-03 14:52:15
    我们平时经常会有一些数据运算的操作,需要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是如何实现的?就拿最常用的sqrt函数来说吧,系统怎么来实现这个经常调用的函数呢? 虽然有可能你平时...
  • 项目的研发模式,即怎么研发一个系统,一步一步怎么:RUP、迭代式、瀑布式、快速原型,区别 1首先说迭代式,和瀑布式,这两个理解了,就基本理解了,研发模式。 1)瀑布式,一步一步,所有工作都完,...
  • FPGA数字信号处理(一)数字混频(NCO与DDS的使用)

    万次阅读 多人点赞 2018-05-30 16:27:36
    程序设计系统时钟5MHz,625kHz的输入信号与625kHz的本振信号混频,根据混频原理会得到1.25MHz的和频信号与0Hz(直流),将直流滤除掉得到1.25MHz的有效信号。 设计的顶层模块接口如下所示: module Mixer ...
  • svn 执行cleanup报错

    千次阅读 2018-06-12 11:46:10
    svn执行update命令时报错“Error:svn: E155004: There are unfinished work items in 'E:\projectCode\code\164\neweb\otcWeb';...执行cleanup时候,提示要Error:Error performing cleanup for 'E:\projectC...
  • 高通平台手机开发之Bring-up

    千次阅读 2018-03-24 18:38:51
    原址手机Bring-up 3.1. Linux 部分编译 高通的代码分两部分:一部分是开源的,可以从codeaurora.org上下载,还有一部分是高通产权的,需要从高通的网站上下载。 将高通产权的代码放到:vendor/qcom/proprietary。...
  • 视觉场景理解论文阅读笔记:Bottom-Up and Top-Down Attention 一、文章相关资料 1.论文地址:点击打开链接 2.论文代码:点击打开链接 3.发表时间:2018 4. 解决的问题: Image Captioning 和 VQA(visual ...
  • 漏洞背景 ...笔者使用他们的代码了个类似的U盘,用户插入U盘,就会自动执行预置在固件中的恶意代码,下载服务器上恶意文件,执行恶意操作…. 硬件准备 这里我们使用的是: BS Micro pro micro leona...
  • 信号量机制中的down和up函数

    千次阅读 2018-10-08 16:12:08
    情况二:当他到厨房去的时候发现妈妈还在,妈妈就对他说:“你先去睡会,待会做好了叫你。”小强就答应去睡会,不过又说了一句:“睡的这段时间要是小红来找我玩,你可以叫醒我。”小强就是down_interruptible,想...
  • 工作中经常会遇到,需要把两张Excel或Csv数据表通过关键字段进行关联,匹配对应数据的情况,Excel虽有Vlookup函数可以处理,但数据量大时容易计算机无响应,可能出现数据丢失,处理速度较慢是软肋,而Python只需几行...
  • up board win10驱动安装

    千次阅读 2017-07-23 16:08:31
    接触类似于树莓派单板计算机开发板也有一段时间,因为是老板亲自出手海外代购一整套inter realsensen robotic development kit,从安装win10操作系统,到具体项目开发,各种亲自动手、丰衣足食的“成就感”——其实...
  • 然后在实现回放系统的时候,只需要从0开始重新运算,并在记录帧更新响应的数据,就实现了回放的系统,就这么简单,一方面这只是一个demo,一方面记录数据量不大,在实际中肯定还需要一些优化计算的,不过还是大致...
  • 从本篇文章开始介绍一款现在非常火的分布式文件系统Ceph,包括这款文件系统的安装、基本使用场景、常用管理命令和重要工作原理。特别是讨论了PaxOS算法的基本理后,就更容易理解Ceph分布式文件系统中各种角色的工作...
  • 聚类算法(2):系统聚类/层次聚类算法

    万次阅读 多人点赞 2019-06-20 15:23:30
    层次聚类:自下而上法(bottom-up)和自上而下法(top-down) 聚类算法(4)--Hierarchical clustering层次聚类 系统聚类:相当于自下而上法,也就是层次聚类 目录 一、系统聚类 1. 系统聚类实现的一般步骤 2. ...
  • 主宰操作系统的经典算法

    万次阅读 多人点赞 2020-07-24 15:22:50
    此篇文章带你梳理一下操作系统中都出现过哪些算法 进程和线程管理中的算法 进程和线程在调度时候出现过...操作系统中有一个叫做 调度程序(scheduler) 的角色存在,它就是这件事儿的,调度程序使用的算法叫做 调度算

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 321,203
精华内容 128,481
关键字:

up怎么做系统