基于深度神经网络的室内可见光定位算法

该项目展示了基于深度神经网络的室内可见光定位算法,平均定位误差达到2.5cm。提供了源代码供参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目定位效果展示:

 

平均定位误差是2.5cm

源代码:

import torch
import torch.nn as nn
import torch.utils.data as Data
import torchvision.transforms as transforms
import torch.nn.functional as f
from torch.autograd import Variable
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import mlab
from matplotlib import rcParams
import statsmodels.api as sm
import tkinter as tk
from tkinter import messagebox  # import this to fix messagebox error
import pickle
from tkinter import filedialog
import time  # 用于计算训练时间


global t1, t2, t3, t4
global file_path_TrL
global file_path_TrD
global file_path_TeL
global file_path_TeD



def file_adress_TrD(t1):
    global file_path_TrD
    root = tk.Tk()
    root.withdraw()
    file_path_TrD = filedialog.askopenfilename()
    t1.delete(1.0, tk.END)  # 清空整个框内的数据
    t1.insert('end', str(file_path_TrD))

def file_adress_TrL(t2):
    global file_path_TrL
    root = tk.Tk()
    root.withdraw()
    file_path_TrL = filedialog.askopenfilename()
    t2.delete(1.0, tk.END)
    t2.insert('end', str(file_path_TrL))

def file_adress_TeD(t3):
    global file_path_TeD
    root = tk.Tk()
    root.withdraw()
    file_path_TeD = filedialog.askopenfilename()
    t3.delete(1.0, tk.END)
    t3.insert('end', str(file_path_TeD))


def file_adress_TeL(t4):
    global file_path_TeL
    root = tk.Tk()
    root.withdraw()
    file_path_TeL = filedialog.askopenfilename()
    t4.delete(1.0, tk.END)
    t4.insert('end', str(file_path_TeL))


def save(if_train_new):
    # 处理数据集
    global file_path_TrL
    global file_path_TrD
    global file_path_TeL
    global file_path_TeD
    global t

    if if_train_new:
        TrainLabel = torch.from_numpy(np.loadtxt(str(file_path_TrL), delimiter=',', dtype=np.float32))
        TrainData = torch.from_numpy(np.loadtxt(str(file_path_TrD), delimiter=',', dtype=np.float32))
        TestLabel = np.loadtxt(str(file_path_TeL), delimiter=',', dtype=np.float32)
        TestData = torch.from_numpy(np.loadtxt(str(file_path_TeD), delimiter=',', dtype=np.float32))
        trainlabel = Variable(TrainLabel)
        traindata = Variable(TrainData)
        testdata = Variable(TestData)
    else:
        TrainLabel = torch.from_numpy(np.loadtxt('./dataset/TrainLabel_fromrealworld.csv', delimiter=',', dtype=np.float32))
        TrainData = torch.from_numpy(np.loadtxt('./dataset/TrainData_fromrealworld.csv', delimiter=',', dtype=np.float32))
        TestLabel = np.loadtxt('./dataset/TestLabel_fromrealworld.csv', delimiter=',', dtype=np.float32)
        TestData = torch.from_numpy(np.loadtxt('./dataset/TestData_fromrealworld.csv', delimiter=',', dtype=np.float32))
        trainlabel = Variable(TrainLabel)
        traindata = Variable(TrainData)
        testdata = Variable(TestData)


    # 定义神经网络
    class Net(torch.nn.Module):
        def __init__(self):
            super(Net, self).__init__()
            self.hidden1 = torch.nn.Linear(4, 64)
            self.hidden2 = torch.nn.Linear(64, 32)
            self.hidden3 = torch.n
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值